gpt4 book ai didi

c# - 使用 NHibernate 获取不同的 IQueryable

转载 作者:太空宇宙 更新时间:2023-11-03 11:31:20 24 4
gpt4 key购买 nike

我在数据库中有一个表,其中包含以下字段:Id、Key、Value。我有几个相同的 key
我想通过 NHibernate 3.2.0.4 获取表的 IQuerable 集合,并按键区分。
我试过这样做:
1.var items = dr.Localization.GetQuery().Distinct(new MyComparer());
并收到:
无法解析表达式'value(NHibernate.Linq.NhQueryable`1[AbstractDataRepository.Domain.ILocalization]).Distinct(value(LEditorExtension.Presentation.Controllers.MyComparer))':方法'System.Linq.Queryable 的重载。当前不支持“不同”。
2.var items = dr.Localization.GetQuery().GroupBy(x => x.Key).Select(g => g.First());
在“项目”中收到空值。
dr.Localization.GetQuery().GroupBy(x => x.Key): Expression cannot contain lambda expressions
有什么办法可以解决这个问题吗?谢谢!

最佳答案

这里的问题是您的查询是针对您的自定义比较器无效的数据库触发的,因为它无法转换为有效的 sql。因此,如果您认为可以在 sql 中执行不同操作,那么您可以尝试指定希望它区分的属性。

如果您仍想使用自定义比较器,请先执行 List(),然后再对其执行 distinct。

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

关于c# - 使用 NHibernate 获取不同的 IQueryable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7671797/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com