匿名类型同时存在dll错误

时间:2014-11-27 16:15:21

标签: c# asp.net asp.net-mvc linq entity-framework

我有一个函数,必须查询一些内容并将其返回以提醒。这是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类定义:

enter image description here

2 个答案:

答案 0 :(得分:1)

两个建议

  1. 选择新的 {   内容= c,   ModerationTitle = m.ModerationTitle }

  2. 选择新结果     {           内容= c,           Title = m.ModerationTitle     }

  3. 其中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()