我有一个函数,必须查询一些内容并将其返回以提醒。这是LINQ查询:
List<DetailedContent> contList = new List<DetailedContent>();
using (entities = new ModerationEntities())
{
var query = (from mac in entities.ModActionCategories
join c in entities.Contents on mac.ActionCategoryId equals c.ActionCategoryId
join m in entities.Moderations on mac.ModId equals m.ModId
where mac.WillAlert == true
select new
{
c,
m.ModerationTitle
}
).ToList().OrderByDescending(x => x.c.ModifiedTime);
foreach (var item in query)
{
DetailedContent cont = new DetailedContent(item.c);
cont.ModTitle = item.ModerationTitle;
contList.Add(cont);
}
return contList;
}
它确实给出了这个错误:
结果视图=类型'&lt;&gt; f__AnonymousType9&lt; c,ModerationTitle&gt; “ 存在于'ModerationDAL.dll'和'EntityFramework.dll'
中
这是我的DetailedContent类定义:
答案 0 :(得分:1)
两个建议
选择新的 { 内容= c, ModerationTitle = m.ModerationTitle }
选择新结果 { 内容= c, Title = m.ModerationTitle }
其中Result是本地定义为
的类private class Result
{
Content Content {get;set;}
string Title {get;set;}
}
答案 1 :(得分:0)
不知道为什么group by不能按预期工作,但这是解决方法:
只需使用select
语句扩展Linq并根据需要创建一个匿名对象。只是不会直接在“分组依据”表达式中发生。
.Select(s => new { Key = s.Key, List = s.ToList() }).ToList()