使用NHibernate获取Distinct IQueryable

本文关键字:IQueryable Distinct 获取 NHibernate 使用 | 更新日期: 2023-09-27 18:10:38

我有表在db与字段:Id,键,值。我有几张一模一样的钥匙
我想通过NHibernate 3.2.0.4获得IQuerable集合表与不同的键。
我试过这样做:
1。 var items = dr.Localization.GetQuery().Distinct(new MyComparer());
和接收:
无法解析表达式'value(NHibernate.Linq.NhQueryable ' 1[abstractdatareposiatory . domain . ilocalization]). distinct (value(leditoreextension . presentation . controllers . mycomparer))':方法'System.Linq.Queryable. .当前不支持"Distinct"。
2。 var items = dr.Localization.GetQuery().GroupBy(x => x.Key).Select(g => g.First());
在'items'中收到null。
dr.Localization.GetQuery()。GroupBy(x => x. key):表达式不能包含lambda表达式
有办法解决这个问题吗?谢谢!

使用NHibernate获取Distinct IQueryable

这里的问题是,您的查询是针对数据库,其中您的自定义比较器是无效的,因为它不能被转换为有效的sql。因此,如果你认为你可以在sql中做不同的,那么你可以通过指定你希望它是不同的属性来尝试。

如果你还想使用你的自定义比较器,先做一个List(),然后对它做一个distinct。

dr.Localization.GetQuery().List().Distinct(new MyComparer());