gpt4 book ai didi

c# - NHibernate 连接 + 合并

转载 作者:太空宇宙 更新时间:2023-11-03 21:54:26 34 4
gpt4 key购买 nike

这是实际架构的简化示例,请耐心等待。我有一个表 foo,其中有一个 id 和一个 value 列。还有一个 bar 表,其中 FK 返回到 foo 表,并且该表有一个 extended_value 列。我想让 Foo 的类映射左连接 Bar 并尝试使用它的 extended_value 列(如果存在),否则返回到 Foo 的 value

这是我需要的 SQL 等价物:

select coalesce(b.extended_value, f.value) as value
from foo f
left join bar b on (b.id = f.id)

我在 NHibernate 之上使用 Fluent。这是我一直在尝试使用的:

Join("bar", m =>
{
m.Optional();
m.KeyColumn("id");
m.Map(foo => foo.Value).Formula("COALESCE(extended_value, value)");
});

但是这是失败的,因为生成的 SQL 期望 extended_valuevalue 在同一个表上。

有什么想法吗?

最佳答案

我的建议是在映射中不要这样做。

独立映射 foo.valuebar.extended_value,然后在您的查询中使用 coalesce 和/或创建使用的未映射属性?? 运算符。

关于c# - NHibernate 连接 + 合并,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12917245/

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