我很感谢@Stefan Steinegger和@David昨天以多对多的映射为我提供帮助。NHibernate多对多删除表中的所有数据
我有3个表是“新闻”,“标签”和“News_Tags”与多对多的关系,“News_Tags”是链接表。
如果我删除了其中一条新闻记录,下列映射会删除所有具有相同标签的新闻记录。我需要注意的一件事是,我只允许存储在“标签”表中的唯一标签。
这个映射对我有意义,它会删除标记和相关的新闻记录,但是我怎样才能用NHibernate实现标记系统呢?
任何人都可以给我一些建议吗?非常感谢。
道明。
新闻映射:
<class name="New" table="News" lazy="false">
<id name="NewID">
<generator class="identity" />
</id>
<property name="Title" type="String"></property>
<property name="Description" type="String"></property>
<set name="TagsList" table="New_Tags" lazy="false" inverse="true" cascade="all">
<key column="NewID" />
<many-to-many class="Tag" column="TagID" />
</set>
</class>
标签映射:
<class name="Tag" table="Tags" lazy="false">
<id name="TagID">
<generator class="identity" />
</id>
<property name="TagName" type="String"></property>
<property name="DateCreated" type="DateTime"></property>
<!--inverse="true" has been defined in the "News mapping"-->
<set name="NewsList" table="New_Tags" lazy="false" cascade="all">
<key column="TagID" />
<many-to-many class="New" column="NewID" />
</set>
</class>
嗨,肯,谢谢。我已经尝试了这篇文章中所有可能的选项。我想也许我的解决方案是不正确的。 – 2010-01-04 23:47:22