asp.net – NHibernate一对多删除不级联
我有一个’Photo’课程和一个’Comment’课程.照片可以分配多个注释.
我在HBM映射文件中将其配置为一对多关系,并对Photo.hbm.xml映射文件中的“注释”包设置了cascade =“all-delete-orphan”. 但是,如果我尝试删除与其关联的一条或多条评论的照片,我会收到’DELETE语句与REFERENCE约束冲突“FK_Comments_Photos”’ 我在Photo.hbm.xml中针对Comments包尝试了几个其他级联选项,但无论我将其设置为什么,我每次都得到相同的结果.我只是希望能够删除照片并自动删除任何相关的评论. 这是我的照片映射(为简洁起见编辑): <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" .... default-access="property" default-cascade="none" default-lazy="true"> <class xmlns="urn:nhibernate-mapping-2.2" name="Photo" table="Photos"> <id name="PhotoId" unsaved-value="0"> <column name="PhotoId" /> <generator class="native" /> </id> ... <bag name="Comments" table="Comments" cascade="all-delete-orphan" order-by="DateTimePosted desc" where="Approved=1"> <key column="PhotoId" /> <one-to-many class="Comment" /> </bag> </class> 这是我的评论映射(为简洁起见编辑): <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" ... default-access="property" default-cascade="none" default-lazy="true"> <class xmlns="urn:nhibernate-mapping-2.2" name="Comment" table="Comments"> <id name="CommentId" unsaved-value="0"> <column name="CommentId"></column> <generator class="native" /> </id> ... <property name="Author" not-null="true" /> <property name="Body" not-null="true" /> <property name="Approved" not-null="true" /> <many-to-one name="Photo" not-null="true"> <column name="PhotoId" /> </many-to-one> </class> 当我尝试删除与其相关的评论的照片时,有没有人有任何关于为什么没有发生级联的建议? 更新:我可以让级联发生的唯一方法是在SQL Server中配置“删除规则”,将此关系配置为“级联”,这样做意味着我不需要在我的NHibernate中指定任何级联操作映射.但是,这对我来说并不理想 – 我希望能够在NHibernate Mapping中理想地配置级联行为,所以我仍然感到困惑,为什么它似乎没有注意到我的NHibernate级联设置? 解决方法
我的猜测是问题来自于Comment映射中的多对一设置为not-null =“true”的事实.
因此,NHibernate在删除Photo对象之前不允许暂时将此属性设置为null,因此在删除Photo对象时,SQL Server会抛出外键异常. 如果我在删除时正确记住了操作顺序: >在所有子对象中将外键值设置为null 尝试从多对一中删除not-null =“true”,看看会发生什么. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- ASP.NET路由:令牌之间的字面子段和来自文字子段的字符的路
- asp.net-mvc – Web API和ASP MVC之间的主要区别是什么
- asp.net-mvc – Azure App Service Web App编译错误
- ASP.NET Core中的ActionFilter与DI
- asp.net – 为什么DropDownList.SelectedValue依赖于viewst
- asp.net-mvc – “test”服务器中的ASP.NET MVC运行时安装要
- asp.net – 当服务器运行3.5时,以.NET 3.5内置到目标4.0的站
- asp.net – 按顺序匹配的字段数量生成SQL顺序
- 从ASP.Net页面通过C#将NetworkCredential传递给HttpWebRequ
- asp.net-mvc – 仅允许来自同一网络服务器的请求的操作
- asp.net-mvc – 当前上下文错误中不存在名称“Ur
- asp.net-mvc – delphi web服务从.net mvc应用程
- ASP.NET Core 中断请求了解一下(翻译)
- asp.net-mvc-3 – 用Response调用的Ajax.BeginFo
- 在ASP.net Webforms中,如何检测有人按下哪个文本
- asp.net-mvc-3 – ASP.NET MVC3 Razor – 在将视
- asp.net-mvc-4 – 使用Bootstrap日期时间选择器,
- ASP.NET MVC默认项目结构和脚本文件夹
- asp.net – Page_ClientValidate正在多次验证
- .net – 任何具有Postsharp生产经验的人?