我正在使用NHibernate 3.2.0.4000及其附带的LINQ提供程序。我试图对孩子的孩子进行总结,但我一直在例外。我的目标是使用group by,然后对组中的元素求和。这是我得到的:
当我跑步时
nh.Query<Aye>()
.Select(aye => aye.Bees.Sum(bee => bee.Cee.Dees.Sum(dee => dee.Value)))
.ToList();
我得到了
Antlr.Runetime.Tree.RewriteEmptyStreamException : "rule x"
当我跑步时
nh.Query<Aye>()
.Select(aye => aye.Bees.SelectMany(bee => bee.Cee.Dees).Sum(dee => dee.Value))
.ToList();
我得到了
NotSupportedException : "Specified method is not supported."
最后,当我跑
时nh.Query<Bee>()
.GroupBy(bee => bee.SomeProperty)
.Select(grp => new { TotalValue = grp.Sum(bee => bee.Cee.Dees.Sum(dee => dee.Value)))
.ToList()
我得到了
InvalidPathException: "Invalid path: 'dee.vValue' [.Select[System.Linq.IGrouping`2[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[Fully.Qualified.Name.For.Bee, MyAssembly, ...
我有一个三层应用程序,我正在尝试将业务逻辑保留在数据库之外。显然,我可以创建一个视图并将视图映射到一个对象,但有几个过滤器我宁愿用C#实现其余的业务规则。我的映射尽我所知。
所以问题是:我如何组建一个大父母,然后总结一下这些孙子? 编辑:我如何以尽可能高效的方式这样做。可能涉及成千上万行,否则我会得到根对象,只需编写普通的C#代码。提前致谢!