gpt4 book ai didi

c# - 如何使用 NHibernate 创建标签系统(多对多)

转载 作者:太空宇宙 更新时间:2023-11-03 16:56:06 24 4
gpt4 key购买 nike

我正在学习 NHibernate,希望你们能帮助我了解 Tag Cloud 的设计和解决方案。

我有 3 个表,分别是“News”、“Tags”和“News_Tags”,具有多对多关系,“News_Tags”是链接表。

选项:

  1. cascade="all", cascade="all-delete-orphan" 如果我删除其中一条新闻记录,它将删除我所有具有相同标签的新闻记录.

  2. cascade="save-update" 它适用于保存和更新,但如果我尝试删除新闻,它会给出错误:删除的对象将被级联重新保存(从关联中删除已删除的对象)

这是我的映射:

标签:

<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提到我可以手动执行此操作,任何人都可以为我提供一些代码示例吗?非常感谢。

最佳答案

看看我刚才给出的这个答案:

What is the correct way to define many-to-many relationships in NHibernate to allow deletes but avoiding duplicate records

它不是直接回答你的问题,而是通过它的极端解决方案和它得到的评论,你可能会明白需要做什么才能达到你所需要的。

关于c# - 如何使用 NHibernate 创建标签系统(多对多),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2007530/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com