gpt4 book ai didi

nhibernate - 不知道如何在NHibernate中进行删除

转载 作者:行者123 更新时间:2023-12-03 12:40:15 25 4
gpt4 key购买 nike

我几乎不知道删除时如何进行。
我的问题是,如果某个类别与某个问题相关联,而我尝试将其从项目中删除,那我将无法做到这一点。

我怎样才能做到这一点?请帮助。

我有3个表格,问题,项目,类别

关系如下:
一个项目可能有很多问题,一个问题只与一个项目有关
2.一个问题可能只有一个类别
3.一个项目可能具有一个或多个类别

Issue.hbm.xml如下:

 <id name="id" type="Int32" unsaved-value="0" access="field">
<column name="ID" length="4" sql-type="int" not-null="true" unique="true" index="PK_Issue"/>
<generator class="native" />
</id>
<many-to-one name="Project" class="API.Project, API">
<column name="ProjectID" length="4" sql-type="int" not-null="false"/>
</many-to-one>
<many-to-one name="Category" class="API.Category, API">
<column name="CategoryID" length="4" sql-type="int" not-null="false"/>
</many-to-one>


project.hbm.xml

<id name="id" type="Int32" unsaved-value="0" access="field">
<column name="ID" length="4" sql-type="int" not-null="true" unique="true" index="PK_Project"/>
<generator class="native" />
</id>
<property name="Name" type="String">
<column name="Name" length="200" sql-type="varchar" not-null="true" unique="true" index="IX_Project_Name"/>
</property>


category.hbm.xml

<id name="id" type="Int32" unsaved-value="0" access="field">
<column name="ID" sql-type="int" not-null="true" unique="true" index="PK_Category"/>
<generator class="native" />
</id>
<property name="Name" type="String">
<column name="Name" length="50" sql-type="varchar" not-null="true" unique="true" index="IX_Category"/>
</property>
<many-to-one name="Project" class="API.Project, API" >
<column name="ProjectID" length="4" sql-type="int" not-null="false"/>
</many-to-one>

最佳答案

我假设在您的数据库中您具有引用ID的外键? (如果不是,则应该这样做)。在这种情况下,映射中的外键属性是必需的,并且当前看起来好像缺少它。

例如对于issue.hbm.xml,它可能看起来像这样:

<id name="id" type="Int32" unsaved-value="0" access="field"> 
<column name="ID" length="4" sql-type="int" not-null="true" unique="true" index="PK_Issue"/>
<generator class="native" />
</id>
<many-to-one name="Project" class="API.Project, API" foreign-key="FK_Issue_Project">
<column name="ProjectID" length="4" sql-type="int" not-null="false"/>
</many-to-one>
<many-to-one name="Category" class="API.Category, API" foreign-key="FK_Issue_Category">
<column name="CategoryID" length="4" sql-type="int" not-null="false" />
</many-to-one>


我在这里输入的FK名称只是假设,请检查一下数据库中的名称以确保它们正确。

一旦NHibernate知道了您的FK关系,就应该处理其余的事情:)

编辑:

OOP-外键属性应该在多对一元素中,而不是对不起列。请参阅修改后的代码。

关于nhibernate - 不知道如何在NHibernate中进行删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3422037/

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