将公式字段插入NHibernate中的数据库
我的hbm文件中有一个公式字段。它使用的是用户定义的SQL函数。此函数生成一个序列号将公式字段插入NHibernate中的数据库,nhibernate,Nhibernate,我的hbm文件中有一个公式字段。它使用的是用户定义的SQL函数。此函数生成一个序列号 <property name="RequisitionNo" column="RequisitionNo" formula="Aims.GenerateRequisitionNo()" not-null="true" generated="insert" /> <property name="IsReqForCustomerOrder" column="IsReqForCustome
<property name="RequisitionNo" column="RequisitionNo" formula="Aims.GenerateRequisitionNo()" not-null="true" generated="insert" />
<property name="IsReqForCustomerOrder" column="IsReqForCustomerOrder" not-null="true" />
<property name="SalesOrderNo" column="SalesOrderNo" not-null="false" />
<property name="IsActive" column="IsActive" not-null="true" />
<property name="RequisitionNo" column="RequisitionNo" formula="Aims.GenerateRequisitionNo()" not-null="true" generated="insert" />
<property name="IsReqForCustomerOrder" column="IsReqForCustomerOrder" not-null="true" />
<property name="SalesOrderNo" column="SalesOrderNo" not-null="false" />
<property name="IsActive" column="IsActive" not-null="true" />
<property name="RequisitionNo" column="RequisitionNo" formula="Aims.GenerateRequisitionNo()" not-null="true" generated="insert" />
<property name="IsReqForCustomerOrder" column="IsReqForCustomerOrder" not-null="true" />
<property name="SalesOrderNo" column="SalesOrderNo" not-null="false" />
<property name="IsActive" column="IsActive" not-null="true" />
但是当Nhibernate生成insert查询时,它会忽略公式字段。如何将sql函数生成的值插入数据库
<property name="RequisitionNo" column="RequisitionNo" formula="Aims.GenerateRequisitionNo()" not-null="true" generated="insert" />
<property name="IsReqForCustomerOrder" column="IsReqForCustomerOrder" not-null="true" />
<property name="SalesOrderNo" column="SalesOrderNo" not-null="false" />
<property name="IsActive" column="IsActive" not-null="true" />
有什么想法吗
<property name="RequisitionNo" column="RequisitionNo" formula="Aims.GenerateRequisitionNo()" not-null="true" generated="insert" />
<property name="IsReqForCustomerOrder" column="IsReqForCustomerOrder" not-null="true" />
<property name="SalesOrderNo" column="SalesOrderNo" not-null="false" />
<property name="IsActive" column="IsActive" not-null="true" />
谢谢该公式是
只读
值,无法写回数据库
<property name="RequisitionNo" column="RequisitionNo" formula="Aims.GenerateRequisitionNo()" not-null="true" generated="insert" />
<property name="IsReqForCustomerOrder" column="IsReqForCustomerOrder" not-null="true" />
<property name="SalesOrderNo" column="SalesOrderNo" not-null="false" />
<property name="IsActive" column="IsActive" not-null="true" />
当然,您在这里的答案是添加dbo.GenerateRequisitionNo()
作为requisionno
列的默认值,并去掉这个公式列,乍一看这似乎是正确的路线
<property name="RequisitionNo" column="RequisitionNo" formula="Aims.GenerateRequisitionNo()" not-null="true" generated="insert" />
<property name="IsReqForCustomerOrder" column="IsReqForCustomerOrder" not-null="true" />
<property name="SalesOrderNo" column="SalesOrderNo" not-null="false" />
<property name="IsActive" column="IsActive" not-null="true" />