我遇到了使用NHibernate进行多对多映射的问题。基本上我有两个类在我的对象模型(场景和技能)映射到我的数据库中的三个表(方案,技能和ScenarioSkill)。 ScenarioSkills表只保存SKill和Scenario表(SkillID,ScenarioID)的ID。NHibernate多对多映射
在对象模型中,场景具有几个常规属性和从ScenarioSkills表中获取的关联技能列表(IList)。技能对象没有关联的IList方案。
从场景和技能ScenarioSkill的映射是一个多一对多的关系:
方案* --- * ScenarioSkill * --- *技能
我已经绘制出了列为袋因为我相信这是我读过的最好的选择。该映射如下:
在场景类
<bag name="Skills" table="ScenarioSkills">
<key column="ScenarioID" foreign-key="FK_ScenarioSkill_ScenarioID"/>
<many-to-many class="Domain.Skill, Domain" column="SkillID" />
</bag>
与技能类
<bag name="Scenarios" table="ScenarioSkills" inverse="true" access="noop" cascade="all">
<key column="SkillID" foreign-key="FK_ScenarioSkill_SkillID" />
<many-to-many class="Domain.Scenario, Domain" column="ScenarioID" />
</bag>
一切正常,只是当我尝试删除技术范围之内,它可以这样做因为ScenarioSkill表的SkillID列上存在引用约束。谁能帮我?
我在一个C#asp.net 3.5 web应用程序解决方案上使用NHibernate 2。
我看到你说的话在这里,是的,我可能包括用于删除自定义方法 - 我希望我可以通过映射处理它尽管使用级联设置。似乎被证明是一个痛苦的屁股虽然。 – Scozzard 2009-07-06 01:59:00