gpt4 book ai didi

nhibernate - 无法使用 Nhibernate 的 Linq 检索 Group By 实体或组合键

转载 作者:行者123 更新时间:2023-12-03 11:23:15 25 4
gpt4 key购买 nike

我正在尝试使用 NH3 通过 Linq 查询执行组。
知道底层 SQL 的困难,我知道这是不可能的,但理想情况下,我想按实体进行分组并完整检索它。
就像是:

var list = from proposals in Session.Query<Proposal>()
group proposals by proposals.Job
into jobGrouping
select new {
Job = jobGrouping.Key,
TotalProposals = jobGrouping.Count()
};

这会生成一个非法的 SQL 查询,因为它试图检索整个 Job 实体,但仅按其 ID 进行分组。

我试过按复合字段分组:
 var list = from proposals in Session.Query<Proposal>()
group proposals by new { proposals.Job.Name, proposals.Job.Status}
into jobGrouping
select new {
Job = jobGrouping.Key.Name,
Status = jobGrouping.Key.Status,
TotalProposals = jobGrouping.Count()
};

但是每当我尝试这个时,当 NHibernate 尝试构建表达式树时,我都会得到一个异常:

An item with the same key has already been added.



任何人都知道是否有任何方法可以通过 NHibernate 实现这一目标?

谢谢,
宜兰

最佳答案

我在尝试多次使用 .Join 扩展方法时遇到了类似的问题,其中表达式树别名直接取自 lambda 参数名称。

我对 SQL Like linq 语法的了解有限,但我认为它会以某种方式转换为自动分配 lambda 别名的流畅等效项。

如果是这种情况,有可能将其转换为具有显式唯一 labmda 别名的流畅语法,您可以避免该问题

关于nhibernate - 无法使用 Nhibernate 的 Linq 检索 Group By 实体或组合键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4593504/

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