当我通过调用SaveOrUpdate()进行保存时,我收到此警告,并且在调用Transaction.Commit()之后数据未保存在数据库中.
NHibernate.Engine.ForeignKeys - 无法确定具有指定标识符[primarykey]的[项目名称]是暂时的还是分离的; 查询数据库.在会话中使用显式Save()或Update()来防止这种情况.
我正在插入一个新对象.谷歌搜索告诉我调用Save()而不是SaveOrUpdate():意味着Save()仅用于插入.
我在谷歌搜索,并没有看到太多关于这一点.任何人都可以给我这个问题或这个警告的建议吗?
编辑:这是模拟的样本映射文件 -
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
                   assembly=""
                   namespace="">
    <class name="Customer" table="[dbo].[Customer]" optimistic-lock="none" >
        <id name="CustomerId" column="CustomerId" >
            <generator class="assigned"/>
        </id>
        <property name="Name" column="Name" /> 
        <property name="Age" column="Age" /> 
        <set name="CustomerDetails" cascade="none" inverse="true" fetch="select">
            <key>
                <column name="CustomerId"/>
            </key>
            <one-to-many class="CustomerDetail"/>
        </set> 
        <many-to-one name="MGender" fetch="select" cascade="none">
            <column name="GenderCode"/>
        </many-to-one> 
    </class>
</hibernate-mapping>
<class name="CustomerDetails" table="[dbo].[CustomerDetail]" optimistic-lock="none" >
    <id name="CustomerDetailId" column="CustomerDetailId" >
        <generator class="assigned"/>
    </id>
    <property name="Detail1" column="Detail1" /> 
    <many-to-one name="Customer" fetch="select" cascade="none">
        <column name="CustomerId"/>
    </many-to-one> 
</class>
<class name="MGender" table="[dbo].[MGender]" optimistic-lock="none" >
    <id name="GenderCode" column="GenderCode" >
        <generator class="assigned"/>
    </id>
    <property name="Description" column="Description" /> 
    <set name="Customers" cascade="none" inverse="true" fetch="select">
        <key>
            <column name="GenderCode"/>
        </key>
        <one-to-many class="Customer"/>
    </set> 
</class>
您正在使用指定的标识符,因此您需要设置unsaved-value属性,以便NHibernate可以确定是否应插入或更新实体.或者您可以显式调用Save for new entities.
    <id name="CustomerId" column="CustomerId" unsaved-value="???" >
        <generator class="assigned"/>
    </id>
| 归档时间: | 
 | 
| 查看次数: | 2839 次 | 
| 最近记录: |