我在 nhibernate 非常陌生。
我正在尝试创建一个与(SQL Server 2008)表相关的类,如下所示:
主表:
- 第 1 列:ID (int) PK
- 第 2 列:登录(nvarchar)
- ...
并具有指示我是否存在另一个表中的任何行的属性(代理键上的左连接)。
其他表:
- ...
- X 列:登录(nvarchar)
- ...
但我真的不知道如何告诉 nhibernate 让 [Main Table].Login 列与 [Other Table].Login 列匹配。
我正在使用 hbm (xml) nhibernate(不是个人选择)。
而且我还没有尝试过任何东西(除了在网上搜索如何做到这一点)。
编辑(05-27):这似乎有效。
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping namespace="xxx.xxx" assembly="xxx" xmlns="urn:nhibernate-mapping-2.2">
<class name="xxx.xxx.ADUser" table="AD_USER">
<id name="Id" column="ID">
<generator class="native"/>
</id>
<property name="Login" column="LOGIN"/>
<property name="Hidden" column="HIDDEN"/>
<many-to-one name="Resource" column="LOGIN" property-ref="Login" cascade="none" />
</class>
</hibernate-mapping>
[DataContract()]
public class ADUser : xxx.AbstractPersistentObject
{
[DataMember(EmitDefaultValue = false)]
public virtual string Login { get; set; }
[DataMember(EmitDefaultValue = false)]
public virtual bool Hidden { get; set; }
[DataMember(EmitDefaultValue = false)]
public virtual AbstractHumanResource Resource { get; set; }
}