0

モデルを埋めるために、次の 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リストには必要な値がありますが、戻りフィールドにはありません。

何が間違っているのですか?最初のクエリでそのエラーが発生したのはなぜですか?

4

0 に答える 0