我有以下 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 循环中,子列表具有我想要的值,但在返回字段中没有。
我做错了什么,为什么第一个查询给了我这个错误?