Conditional Group By and Select using Linq (NHibernate)
本文关键字:Linq NHibernate using Select Group By and Conditional | 更新日期: 2023-09-27 17:56:33
我有那个查询:
var group = query.GroupBy(x => new
{
...
TestName = isSelected ? x.ClassA.Name : ""
});
var select = group.Select(y => new MyResultDTO()
{
...
TestName = isSelected ? y.First().ClassA.Name : ""
});
那不是担心...我收到一个错误:
列 'tblClassA.Name' 在选择列表中无效,因为它不包含在聚合函数或 GROUP BY 子句中。
但是,如果我将我的组由更改为仅(采取条件从句):
TestName = x.ClassA.Name
它工作正常...知道我该怎么做那个二分法的分组/选择吗?
我正在使用 NHibernate 3.3.1
保罗
不确定你想要实现什么,但你试过写作吗?
var select = group.Select(y => new MyResultDTO()
{
...
TestName = y.Key.TestName
});
另外,您可以为您的小组尝试这样的事情:
var group = query.Where(isSel=>isSel.isSelected).GroupBy(x => new
{
...
TestName = x.ClassA.Name
})
.Union(query.Where(isSel=>!isSel.isSelected).GroupBy(x => new
{
...
TestName = ""
});
希望这会有所帮助