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 给出以下错误:“'Distinct' 操作无法应用于指定参数的集合 ResultType。\r\n参数名称:参数”

我也试过这个:

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 循环中,子列表具有我想要的值,但在返回字段中没有。

我做错了什么,为什么第一个查询给了我这个错误?

4

0 回答 0