【发布时间】:2012-10-16 14:39:45
【问题描述】:
这是实际架构的简化示例,请多多包涵。我有一个表foo 有一个id 和一个value 列。还有一个bar 表,带有一个指向foo 表的FK,并且该表有一个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_value 和 value 在同一个表上。
有什么想法吗?
【问题讨论】:
标签: c# nhibernate fluent-nhibernate fluent-nhibernate-mapping