SaveOrUpdate()を呼び出して保存しているときに、この警告が表示され、Transaction.Commit()を呼び出した後にデータがデータベースに保存されません。NHibernate警告とデータが保存されない
NHibernate.Engine.ForeignKeys - [主キー]一時的または取り外し で割り当てられた識別子と、[プロジェクト名]かどうかを決定するために できません。 データベースを照会します。これを防ぐには、セッションで明示的なSave()または Update()を使用してください。
私は新しいオブジェクトを挿入しています。 Google検索は、SaveOrUpdate()の代わりにSave()を呼び出すように指示します:Save()は挿入のためのものであることを意味します。
私はGoogleで検索し、これについてはあまり見ていません。 誰も私にこの問題またはこの警告の提案をしてもらえますか?
編集:ここでは がシミュレートされたサンプルのマッピングファイルである -
<?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>
あなたのマッピングは何ですか? – Phill
オブジェクトを保存するコードを追加します。 –