問題が発生しました。別のテーブルへの参照を持つテーブルがあり、別のテーブルへの参照リストがあります。すべてのことを熱望したいEntity Frameworkエンティティリスト内のエンティティリストの読み込み
public class User {
public ClassL1 l1 { get; set; }
}
ClassL1 {
public List<ClassL2> l2 { get; set; }
}
ClassL2 {
public List<ClassL3> l3 { get; set; }
}
ClassL3 {
//some basic string or int values
}
そして現在、私はこのようなもので、それをロードしようとしているんだけど、無駄に:
基本的には、アイデアがある
user = context.Users
.Where(u => u.UserName == model.Username)
.Include(u => u.l1)
.ThenInclude(l1 => l1.l2)
.ThenInclude(l2List => l2List.Select(l2Single => l2Single.l3))//This doesn't work
//.Include(u => u.l1.l2.Select(l2Single => l2Single.l3)) //Neither does this
.First();
私が想定していますどのようにロードするために選択が機能していない場合、リストのリスト?どんな助けもありがとう。
EDIT: どうやらこの上のオープンバグがあるので、まあ、私は愚かな修正を行って、それは次のように働かせた:
user = context.Users
.Where(u => u.UserName == model.Username)
.Include(u => u.l1)
.ThenInclude(l1 => l1.l2)
.First();
for (int i = 0; i < user.l1.l2.Count; i++)
{
user.l1.l2[i].l3 = context.l3DB
.Where(p => p.l2.Id == user.l1.l2[i].Id)
.ToList();
}
そして、これが機能するために、私は参照を追加(親に)クラス内にある。
これはどうuser = context.Users
.Where(u => u.UserName == model.Username)
.Include(u => u.l1)
.ThenInclude(l1 => l1.l2)
.ThenInclude(l2 => l2.l3)
.First();
動作していないようです。 "型 'Microsoft.Data.Entity.Query.Internal.EntityQueryable'1 [ClassL3]'と 'System.Collections.Generic.List'1 [ClassL3]'の間に型変換演算子が定義されていません。" –
これはあなたのマッピングの問題かもしれません。どのバージョンのEFを使用していますか? –
"EntityFramework.Commands": "7.0.0-rc1-final" "EntityFramework.Core": "7.0.0-rc1-final" 私もそう思っていましたが、修正方法を見つけることができません、クラス名と同じ名前の1つの小道具を持っていましたが、それを変更しましたが、エラーは持続しました。私はこの問題に関するコードスニペットをアップロードすることができます。 –