0

カスタム ロール プロバイダーの作成に使用しました。

私のプロジェクト - asp.net MVC3、Entity Framework 4

GetRolesForUser メソッドに問題があります。

カスタム RoleProvider - GetRolesForUser メソッド

    // The user to return a list of roles for.
    public override string[] GetRolesForUser(string userAccount)
    {
        var userId = userRepository.GetUser(userAccount).UserId;

        var roleIds = from ur in usersInRoleRepository.UsersInRoles
                    where ur.UserId == userId
                    select ur.RoleId;

        var roleNames = from r in roleRepository.Roles
                        where roleIds.Contains(r.RoleId)
                        select r.RoleName;


        if (roleNames != null)
        {
            **return roleNames.ToArray();  // here Error**
        }
        else
        {
            return new string[0];
        }
    }

エラー メッセージ : 指定された LINQ 式には、異なるコンテキストに関連付けられているクエリへの参照が含まれています。

このコードに問題があるかどうかはわかりません。

助けてください。

ユーザーエンティティ

public class User
{
    public Guid UserId { get; set; }
    public string UserAccount { get; set; }
    public string Password { get; set; }
    public string UserEmail { get; set; }
    public DateTime JoinDate { get; set; }
    public DateTime LoginDate { get; set; }
}

ロール エンティティ

public class Role
{
    public Guid RoleId { get; set; }
    public string RoleName { get; set; }
    public DateTime CreateDate { get; set; }
}

UsersInRole エンティティ

public class UsersInRole
{
    public Guid UserId { get; set; }
    public Guid RoleId { get; set; }
    public DateTime SetDate { get; set; }
}
4

1 に答える 1