FluentNHibernate 公式映射 C#
Posted
技术标签:
【中文标题】FluentNHibernate 公式映射 C#【英文标题】:FluentNHibernate Formula Mapping C# 【发布时间】:2015-09-09 11:15:54 【问题描述】:有没有办法声明一个传递公式的映射,该公式仅适用于特定语句(在我的情况下为SELECT
)?
问题是我有类似的东西
Map(x => x.Id).Formula("SUBSTRING(id, 0, 2)");
但是当我尝试为这个特定实体运行插入时,它会导致错误,因为它也使用Formula
作为插入语句。
【问题讨论】:
【参考方案1】:我们必须将此类列设为只读
Map(x => x.Id)
.Formula("SUBSTRING(id, 0, 2)")
.ReadOnly();
或更像原版insert="false" udpate="false"
Map(x => x.Id)
.Formula("SUBSTRING(id, 0, 2)")
.Not.Update()
.Not.Insert();
【讨论】:
我没有为我们工作,因为我们还必须能够将该列用于插入语句(这不是身份字段) 公式将永远可插入。它只是一个阅读专栏。我会建议...映射它两次。一次仅插入...作为列(“id”)...这将在实体创建期间插入。稍后您可以使用公式进行阅读。那应该行得通。但正如我所说“公式本身将永远不可插入”以上是关于FluentNHibernate 公式映射 C#的主要内容,如果未能解决你的问题,请参考以下文章
使用 FluentNhibernate 和 Autofac 的映射接口
FluentNHibernate - 如何在没有任何身份字段的情况下进行映射
FluentNHibernate 异常:复合用户类型上的“属性映射的列数错误”
使用FluentNHibernate引用的CustomType