かなり新しいnHibernateです。私は2つのテーブル "User"と "UserProfile"の間に次の1対1のマッピングをセットアップしました。"指定されたキーが辞書に存在しませんでした" nHibernate C#
User.hbm.xml:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" namespace="Core.Domain.Model" assembly="Core">
<class name="User" table="Users" dynamic-update="true" lazy="false">
<cache usage="read-write"/>
<id name="UserId" column="UserId" type="guid">
</id>
<one-to-one name="UserProfile" class="UserProfile"/>
</class>
</hibernate-mapping>
UserProfile.hbm.xml:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" namespace="Core.Domain.Model" assembly="Core">
<class name="UserProfile" table="UserProfiles" dynamic-update="true" lazy="false">
<cache usage="read-write"/>
<id name="UserProfileId" column="UserProfileId" type="int">
<generator class="native"/>
</id>
<property name="Description" length="100"/>
<many-to-one name="User" unique="true" column="UserId"/>
</class>
</hibernate-mapping>
マイPOCOS上記のマッピングがあるために:今すぐ
public class User
{
public virtual Guid UserId { get; set; }
public virtual UserProfile UserProfile { get; set; }
}
public class UserProfile
{
public virtual int UserProfileId { get; set; }
public virtual User User { get; set; }
}
は私がしようとすると、私の "User"オブジェクトを永続させる例外が発生する: "指定されたキーが存在しない次の行の辞書」で:
using (ISession session = SessionFactory.OpenSession())
誰もがここで起こって何ができるか知っていますか?
私は考える前に、このエラーを見たことがあります。アプリを再構築してもう一度実行してみてください。スローされる最初の例外が何であるかを見てください。 – jjnguy
用量が持続するコードとして表示できますか? –
ちょうどいいです。同じ例外がスローされます。 – kartikq