这是我的表:
无论如何,我想在linq中做的是使用outputCycleID将feedGiven列与logdate(我们可以截断时间......不需要)的组合并。
然后取出给定的最后7天的饲料总量并将其平均。
目前这就是我现在所得到的:
public IQueryable<FeedingLog> getLastSevenDaysAverage(int intendedProductionCycleID)
{
var ListProductionCycleQuery = this.ObjectContext.FeedingLogs.Where(b => b.ProductionCycleID== intendedProductionCycleID);
var SumResult = from s in ListProductionCycleQuery
group s by new {s.ProductionCycleID,s.feedGiven, s.LogDate} into g
select new {g.Key.ProductionCycleID, g.Key.LogDate g.Sum(y => y.feedGiven)};
return ListProductionCycleQuery;
}
我真的被linq困住了,通常情况下我会在sql中做到这一点,但如果我选择一个视图(没有主键问题),实体框架有点儿错误
我在代码中也遇到了这个问题:
基本上它表示无效的匿名类型成员声明符。必须使用成员赋值声明匿名类型的memmer。 提前感谢阅读和解决方案
答案 0 :(得分:1)
您已在群组中添加了feedGiven
,但这是您不想要的一个字段
var SumResult = from s in ListProductionCycleQuery
group s by new {s.ProductionCycleID,s.LogDate} into g
select new {g.Key.ProductionCycleID, g.Key.LogDate g.Sum(y => y.feedGiven)};
此外,您要从函数返回原始查询,您可能希望定义一个类来表示分组/求和信息并返回该信息。
答案 1 :(得分:0)
省略Feed By-clause for feed Given:
var SumResult = from s in ListProductionCycleQuery
group s by new {s.ProductionCycleID,s.LogDate} into g
select new {g.Key.ProductionCycleID, g.Key.LogDate g.Sum(y => y.feedGiven)};