У меня есть следующие таблицы: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
обеих таблиц, что неверно.
Я не хочу включать имущество InfoId
на мой класс UserCredentials
, если его можно избежать.
Может ли кто-нибудь помочь мне достичь желаемого картографирования?
Спасибо, это было то, что я имел в виду, добавляя свойство для внешнего ключа. –
Я не могу заставить это работать, и на основе этого отчета о проблеме http://216.121.112.228/browse/NH-1452 функция property-ref фактически не реализована. Может ли кто-нибудь подтвердить, что они получили это на работу? Я использую nHibernate 2.1. – sgriffinusa
Это не работает, NH по-прежнему будет использовать идентификатор, определенный в сопоставлении, даже если вы определите свойство-ref –