私はそれを動作させようとしていますが、私はここで何が欠けているのか分かりません。Entity Framework - 特定の外部キーデータをロードする
私のモデルは以下のとおりです。
public class User
{
public int id { get; set; }
public string username { get; set; }
public virtual List<UserMeta> usermeta { get; set; }
public User()
{
this.usermeta = new List<UserMeta>();
}
}
public class UserMeta
{
public int id { get; set; }
public string metakey { get; set; }
public string value { get; set; }
public virtual User user { get; set; }
}
私はmetakeyな= 'first_nameの' のmetavalueを選択したい
現在、これは私が持っているものであり、その作業:
var user = db.Users.Include("UserMeta");
foreach (var item in user)
{
Console.WriteLine(item.username);
foreach (var item2 in item.usermeta)
{
// check item2.metakey for 'first_name'
}
}
しかし、それは勝ちました
var user = from u in db.Users
select u;
foreach (var item in user)
{
foreach (var item2 in item.usermeta)
{
}
}
2番目のコードスニペットで何が間違っていますか。また、これらをロードするより良い方法がありますか?
"作業しない"という意味を明確にしてください。エラーが発生しましたか?データが間違っていますか? [最小限で完全で検証可能なサンプルの作成方法](http://stackoverflow.com/help/mcve)を参照してください。 'DbContext'が破棄された後に' Users'にアクセスしようとしていると思われますが、あなたが含まれている情報ではそれを伝えることはできません。 – Tone