1

以下のコードを使用して、winform アプリにユーザーをログインさせています。

public static Boolean Attempt(String username, String password, bool salted = false)
{
        using (InventorySystemEntities context = new InventorySystemEntities(new ConfigurationManager().ConnectionString))
        {
            password = password.ToMD5(salted);

            User = context.Users.SingleOrDefault(u => u.UserName == username
                                && u.Password == password && u.IsEnabled == true);
            return User != null ? true : false;
        }
}

コンテキストが破棄された後にデータにアクセスする方法はありますか? 新しいコンテキストを使用したいですか?

User test = Auth.Attempt(txtUsername.Text, txtPassword.Text);

//is there a way to access this?
test.UserGroup.Name;
4

1 に答える 1

1

明示的な読み込みを使用して、新しいコンテキストでナビゲーション プロパティを取得できます。

public static void LoadUserGroup(User user)
{
    using (InventorySystemEntities context = new InventorySystemEntities(
        new ConfigurationManager().ConnectionString))
    {
        context.Users.Attach(user);
        context.Entry(user).Reference(u => u.UserGroup).Load();
    }
}

次に、次のプロパティにアクセスできますUserGroup

User test = Auth.Attempt(txtUsername.Text, txtPassword.Text);

//...

Auth.LoadUserGroup(test);
test.UserGroup.Name;

新しいコンテキストを作成しないと、 に移動できませんUserGroup

于 2013-06-29T21:57:21.493 に答える