안녕하세요 여러분,이 문제에 대한 해결책을 일정 기간 검색하려고했습니다. 그것을 찾을 수 없습니다. 나는 두 가지 수업을 단순화 할 것입니다. 내 문제는 플레이어와 클랜 간의 단방향 일대일 매핑을 원한다는 것이다. 이제 나는 이드의 외래 키를 가진 예제를 보았습니다. 그러나 나는 그것을 이해하지 못한다. 이 매핑은 ClanLeader에 대한 내 Clans 테이블의 열을 생성하지 않습니다 ... 뭔가 빠졌습니까? 모두에게 도움을 주셔서 감사합니다.Nhibernate 일대일 매핑
public class Clan{
private Int32 id;
public virtual Int32 Id
{
get { return id; }
set { id = value; }
}
private string name;
public virtual string Name
{
get { return name; }
set { name = value; }
}
private Player clanLeader;
public virtual Player ClanLeader
{
get { return clanLeader; }
set { clanLeader = value; }
}
}
그런 다음 우리는 클랜에 대한 매핑이 : 플레이어에 대한
public class Player{
private Int32 id;
public virtual Int32 Id
{
get { return id; }
set { id = value; }
}
private string nickname;
public virtual string Nickname
{
get { return name; }
set { name = value; }
}
}
및 매핑 :
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
assembly="NHibernateSQLite"
namespace="NHibernateSQLite" >
<class name="GamingOrganizerDomainModel.Clan, GamingOrganizerDomainModel" table="Clans" lazy="false">
<id name="id" access="field" column="Clan_ID" type="Int32">
<generator class="native"></generator>
</id>
<property name="Name" column="Clan_Name" unique-key="ClanNameConstraint" type="String"/>
<one-to-one name="ClanLeader" class="GamingOrganizerDomainModel.Player, GamingOrganizerDomainModel" />
</class>
</hibernate-mapping>
다음 클래스 플레이어입니다
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
assembly="NHibernateSQLite"
namespace="NHibernateSQLite" >
<class name="GamingOrganizerDomainModel.Player, GamingOrganizerDomainModel" table="Players" lazy="false">
<id name="id" column="Player_ID" access="field" type="Int32">
<generator class="native" />
</id>
<property name="nickname" access="field" column="Nickname"/>
</class>
</hibernate-mapping>
대단히 감사합니다. 이것은 내 문제를 해결했습니다! – Romulus
이 대답이 도움이 된 것을 기쁘게 생각합니다. 이 qustion을 대답으로 표시하십시오 :). –