2
我们正在使用Oracle数据库构建WPF应用程序,同时使用NHibernate和uNHAddins扩展。在DataGrid中,我们试图从表中获取的值,这个查询LINQ:如何使用LINQ,NHibernate和uNHAddins进行分组和排序
return (from f in rFConsumption.GetAll()
let d = f.CounterDtm
where f.CounterDtm >= dataHoraInicio && f.CounterDtm <= dataHoraFim
group f by (d.Year - 2000) * 384 + d.Month * 32 + d.Day into g
select new RFConsumption
{
COGCounter1 = (g.Sum(f => f.COGCounter1)),
BFCounter1 = (g.Sum(f => f.BFCounter1)),
NatGasCounter1 = (g.Sum(f => f.NatGasCounter1)),
MixGasCounter1 = (g.Sum(f => f.MixGasCounter1)),
COGCounter2 = (g.Sum(f => f.COGCounter2)),
BFCounter2 = (g.Sum(f => f.BFCounter2)),
NatGasCounter2 = (g.Sum(f => f.NatGasCounter2)),
MixGasCounter2 = (g.Sum(f => f.MixGasCounter2)),
COGCounter3 = (g.Sum(f => f.COGCounter3)),
BFCounter3 = (g.Sum(f => f.BFCounter3)),
NatGasCounter3 = (g.Sum(f => f.NatGasCounter3)),
MixGasCounter3 = (g.Sum(f => f.MixGasCounter3)),
}
).ToList<RFConsumption>();
所以,我的问题是:
感谢您的回答,但我忘了告诉的东西。我们使用MVVM,而NHibernate则使用了Layer Service。 这是rFConsumption.GetAll()运行: 公众的IQueryable GETALL(){ 回报 (从吨Session.Query () 选择T); } 我该如何修改? 再次感谢。 –
好的,我已经更改了服务层并实现了IQueryOver Find()。现在,我的查询是: ---- return(from f in rFConsumption.Find() where(fc =>((fc.CounterDtm> = dataHoraInicio)&&(fc.CounterDtm <= dataHoraFim))。SelectList( list => list).SelectGroup(g =>((g.CounterDtm.Year - 2000)* 384 + g.CounterDtm.Month * 32 + g.CounterDtm.Day).Select(exp => new RFConsumption() { ... }) .OrderBy(EE => ee.COGCounter1)) .ToList ()); - 错误: 成FC - >无法转换lambda表达式为类型 '布尔',因为它不是代表类型 –
我可以做什么? –