我在学习NHibernate,并希望你们能够帮助我了解标签云设计和解决方案。如何使用NHibernate创建标签系统(多对多)
我有3个表是“新闻”,“标签”和“News_Tags”与多对多的关系,“News_Tags”是链接表。
选项:
级联=“全”,级联=“全删除,孤儿”如果我删除的消息记录之一,它会删除这些都是我的所有消息记录相同的标签。
级联=“保存更新”它与储存和更新,但如果我尝试删除新闻它会给出错误:已删除的对象将通过级联(移除协会删除的对象)重新保存
这里是我的映射:
标签:
<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>
新闻:
<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>
任何人都可以提供一些解决方案吗? @Lck提到我可以手动执行此操作,任何人都可以为我提供一些代码示例吗?非常感谢你。
我已经花了3晚在这个,几乎放弃。我把inverse =“true”放入错误的映射文件中。非常感谢。你写了任何博客或文章,所以我可以关注他们。 :) – 2010-01-07 11:41:45
不客气。我目前没有博客,但我正在处理它;-) – tolism7 2010-01-07 12:25:19