2
我有以下表獲得單柱:NHibernate的:加入表和其他表
create table Users(
Id uniqueidentifier primary key,
InfoId uniqueidentifier not null unique,
Password nvarchar(255) not null
)
Create table UserInfo(
Id uniqueidentifier primary key,
Company nvarchar(255) not null,
ContactPerson nvarchar(255) not null
)
而且InfoId
是一個外鍵引用UserInfo(Id)
。
我想這個映射到以下類:
public class UserCredentials
{
public virtual Guid Id { get; set; }
public virtual string UserName { get; set; }
public virtual string PasswordHash { get; set; }
protected UserCredentials() { }
}
我想下面的映射:
Id --> Users(Id)
UserName --> UserInfo(Company)
PasswordHash --> Users(Password)
我嘗試了以下映射:
<hibernate-mapping xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:nhibernate-mapping-2.2">
<class name="UserCredentials" table="Users">
<id name="Id" type="Guid">
<generator class="guid.comb" />
</id>
<property name="PasswordHash" not-null="true" column="Password"/>
<join table="UserInfo">
<key column="Id" foreign-key="InfoId"/>
<property name="UserName" column="Company" not-null="true" />
</join>
</class>
</hibernate-mapping>
但似乎<key>
元素被錯誤地指定(foreign-key
屬性)不會做我想要的。如果我忽略了foreign-key
屬性,它會嘗試加入兩個表的Id
列,這是不正確的。
如果可以避免,我不想在我的UserCredentials
類中包含InfoId
屬性。
任何人都可以幫助我實現所需的映射嗎?
謝謝,這是有點我想到的,不得不添加一個屬性的外鍵。 – 2009-12-14 08:41:59
我無法得到這個工作,並根據這個問題報告http://216.121.112.228/browse/NH-1452屬性ref參數沒有實際執行。任何人都可以證實他們已經得到這個工作?我正在使用nHibernate 2.1。 – sgriffinusa 2010-12-10 23:30:19
這不起作用,即使你定義了一個property-ref,NH仍然會使用映射中定義的id – 2013-03-20 09:47:34