我有以下表格:
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
)
And 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
两个表的列,这是不正确的。
我不想包括InfoId
我的财产UserCredentials
如果可以避免的话。
谁能帮助我实现所需的映射?