對於nHibernate來說,這很新穎。我在兩個表「User」和「UserProfile」之間設置了以下一對一映射。「給定的密鑰不存在於字典中」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>
我波蘇斯對於上述映射是:
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; }
}
現在,當我嘗試堅持我的「用戶」對象我得到一個例外: 「給定的密鑰不存在在下面的行字典「:
using (ISession session = SessionFactory.OpenSession())
有誰知道什麼可以怎麼回事?
我以前見過這個錯誤。嘗試重新構建您的應用,然後重新運行它。看看拋出的第一個異常是什麼。 – jjnguy 2011-03-14 19:20:19
你可以顯示爲劑量持續的代碼用戶... – 2011-03-14 19:23:45
只是做了。它引發同樣的異常。 – kartikq 2011-03-14 19:27:29