C#Linq:Group由不同实体的不同列组成

时间:2012-09-24 07:02:52

标签: c# linq entity-framework

我有三个实体ClassC,ClassS和ClassSA。我想使用LINQ来应用组。

using (var db = new SEntities())
{
    var result = from c in db.ClassC
    join s in db.ClassS on c.ID equals s.CID
    join sa in db.ClassSA on s.SAID equals sa.ID
    group sa by
    new { c.Type, s.Date.Year}
    into g
    select new ClassSAY { Year = g.Key.Year, CI = g.Key.CIType, Count = g.Count(sa => sa.ID)};
}

我想加入ClassC,ClassS和ClassSA;由两个不同类的两个不同属性分组,并将结果的某些部分存储在另一个类的属性中。我已经通过发现组搜索了一个类的属性。

这是错误的:

  1. 无法将lambda表达式转换为委托类型'System.Func< SG.DAL.SA,bool>'因为块中的某些返回类型不能隐式转换为委托返回类型

  2. 无法将类型'long'隐式转换为'bool'

  3. 感谢。

1 个答案:

答案 0 :(得分:0)

尝试使用

Count = g.Count()

而不是

Count = g.Count(sa => sa.ID)