如何在Nhibernate中的Map in Property之前检查列值是否为null

时间:2016-01-14 09:40:55

标签: c# asp.net nhibernate fluent-nhibernate nhibernate-mapping

我有一个名为 MyValue 的属性。需要将列value("Total")映射到该属性。在映射之前需要检查列值是否为null。如果为null,则将另一列value("Count")映射到该列。

我该如何处理,

这是针对总价值

完成的
 Map(x => x.MyValue)
       .Column("Total")
       .CustomType("Decimal")
       .Access.Property()
       .Generated.Never()
       .CustomSqlType("decimal")
       .Precision(9).Scale(2);

1 个答案:

答案 0 :(得分:3)

如果您正在讨论在DB中有两列并希望在Application层上使用它们作为一个......您应该使用FORMULA映射它们。

 Map(x => x.MyValue)
       //.Column("Total")
       .Formula("ISNULL(Total, Count)")
       ...

注意:应该始终将其视为只读 - 如果您需要写入两列,分别映射它们,并为ISNULL公式创建第三个只读映射...

检查文档:5.1.10. property