モデルを埋めるために、次の LINQ クエリがあります。
var blogs = (from b in Context.Blogs
select new BlogTreeView
{
Created = EntityFunctions.TruncateTime(b.Created),
Children = (from ba in Context.Blogs
where EntityFunctions.TruncateTime(ba.Created) == EntityFunctions.TruncateTime(b.Created)
select new BlogTitle
{
ID = ba.ID,
Title = ba.Title
})
}).Distinct();
問題は、distinct で次のエラーが発生することです。
私もこれを試しました:
var blogs = (from b in Context.Blogs
select new BlogTreeView
{
Created = EntityFunctions.TruncateTime(b.Created)
}).Distinct();
これにより、必要な一意の日付のみが得られます。
次に、foreach を使用して子をモデルに追加しようとしました。
foreach (var item in blogs)
{
item.Children = (from ba in Context.Blogs
where
EntityFunctions.TruncateTime(ba.Created) ==
EntityFunctions.TruncateTime(item.Created)
select new BlogTitle
{
ID = ba.ID,
Title = ba.Title
});
}
しかし、子リストの戻り値は null です。私のforeachループでは、Childrenリストには必要な値がありますが、戻りフィールドにはありません。
何が間違っているのですか?最初のクエリでそのエラーが発生したのはなぜですか?