C# EF按嵌套元素分组并选择该元素的属性
我试图按公司和日期对约会进行分组(对于每个公司,我都有一个日期列表,每个日期都有约会计数)。C# EF按嵌套元素分组并选择该元素的属性,c#,entity-framework,group-by,C#,Entity Framework,Group By,我试图按公司和日期对约会进行分组(对于每个公司,我都有一个日期列表,每个日期都有约会计数)。 我的实体是这样的: class RendezVous { // properties.... Compagne Compagne { get; set; } } class Compagne { // properties string Nom { get; set; } 我的问题是: public static IEnumerable GetProgression(
我的实体是这样的:
class RendezVous {
// properties....
Compagne Compagne { get; set; }
}
class Compagne {
// properties
string Nom { get; set; }
我的问题是: public static IEnumerable GetProgression()
{
var list = dbContext.RendezVous.GroupBy(o => new
{
Compagne = o.Compagne,
Date = o.DateCreation
}).Select(g => new
{
Compagne = g.Key.Compagne.Nom,
Date = g.Key.Date,
Total = g.Count()
}).OrderByDescending(k => k.Date).ToList();
return list;
}
在这种情况下,错误为:Column 'dbo.Compagne.Nom' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
当我执行GroupByCompagne=Compagne.Nom
和选择Compagne=g.Key.Compagne.Nom
时,它工作正常,但是我可能有一些Compagne对象具有相同的Compagne.Name值。
请帮助您想做什么,查询的预期结果是什么?我正在尝试按公司和日期对约会进行分组(对于每个公司,我都有一个日期列表,每个日期都有约会计数)你真的想从
GetProgression
方法返回一个包含匿名对象的非类型化IEnumerable
吗?是的,你说这是犯罪:D@Fourat不,我不是。这只是很不寻常。因为除非您将它们动态化或序列化,否则您无法对它们进行太多处理。除了数一数有多少外:D