Chr*_*art 8 nhibernate many-to-many nhibernate-mapping xml-configuration
我希望使用NHibernate创建多对多的关系.我不确定如何在XML文件中映射这些.我还没有创建类,但它们只是基本的POCO.
人
PERSONID
名
能力
胜任
标题
Person_x_Competency
personId
competencyId
我是否会在每个POCO中为另一个类创建一个List?然后使用NHibernate配置文件以某种方式映射它们?
Ste*_*ger 23
您可以将多对多关系放在任一类中,甚至两者之间.这取决于您的域模型.如果将它映射到两者,则其中一个是反向的.
class Person
{
// id ...
IList<Competency> Competencies { get; private set; }
// you domain model is responsible to manage bidirectional dependencies.
// of course this is not a complete implementation
public void AddCompetency(Competency competency)
{
Competencies.Add(competency);
competency.AddPerson(this);
}
}
class Competency
{
// id ...
IList<Person> Persons { get; private set; }
}
Run Code Online (Sandbox Code Playgroud)
制图:
<class name="Person">
<id ....>
<bag name="Competencies" table="Person_x_Competency">
<key column="personId"/>
<many-to-many class="Competency" column="competencyId"/>
</bag>
</class>
<class name="Competency">
<id ....>
<bag name="Persons" table="Person_x_Competency" inverse="true">
<key column="competencyId"/>
<many-to-many class="Person" column="personId"/>
</bag>
</class>
Run Code Online (Sandbox Code Playgroud)
如果你真的需要它,只能使它双向.
顺便说一下:首先编写类并在之后创建数据库设计要好得多.可以从映射文件导出数据库.这非常有用.
| 归档时间: |
|
| 查看次数: |
14057 次 |
| 最近记录: |