我正在尝试映射实体属性,使其将值写入数据库列,但使用公式检索其值。
为了关注实际问题,我简化了示例。实际上,公式有点复杂,并且正在使用NHibernate过滤器。
<many-to-one cascade="all" class="Thing" lazy="false" name="MyThing"
formula="(SELECT Things.Value FROM Things WHERE Things.Id = MyThingId)">
<column name="MyThingId" />
</many-to-one>
但是,除非我删除<column name="MyThingId" />
行,否则会忽略该公式。
为了让NHibernate使用公式,我将如何修复此映射?
答案 0 :(得分:6)
我认为不可能完全按照你的意思行事。
为什么不将财产分成两部分?一个只读公式,另一个读/写直接列映射...
如果您仍然需要单个访问点,则可以映射第三个被忽略的属性,该属性使用两个第一个属性来实现它get
和set
个访问者。