无法删除集合:[NHibernate.Exceptions.GenericADOException]

2024-03-27

我有两个表,表 A 和表 B。

tableA 有列:tabAId、col2、col3(tabAId 主键和标识列。)

表有列:tabAId,名称(tabAId 不为空)

我在tableA的hbm文件中创建了Bag,以维护关系。

<bag name="tableB" lazy="true" inverse="false"
                    batch-size="25" cascade="all-delete-orphan">
  <key column="tabAId" />
  <one-to-many class="tableB" />
</bag>

当我尝试更新记录时tableA它抛出异常,因为我在 tableA 实例中有子列表。

[NHibernate.Exceptions.GenericADOException] = {“无法删除集合:[MIHR.Entities.tableA.tableB#21][SQL:UPDATE dbo.tableB SET tabAId = null WHERE tabAId = @p0]”}

InnerException = {“无法将 NULL 值插入到表 'SA_MIHR_DEV.dbo.tableB' 的列 'tabAId' 中; 列不允许为空。 UPDATE 失败。\r\n该语句已终止。"}


解决这个问题只有两种方法。

1)不要使用inverse="false"

<bag name="tableB" lazy="true" inverse="true" // instead of false
                    batch-size="25" cascade="all-delete-orphan">
  <key column="tabAId" />
  <one-to-many class="tableB" />
</bag>

这个设置(逆=“真”)会指示NHibernate直接删除一个item来自数据库。

使用时inverse="false"一般来说总是会导致:

  • UPDATE (with null) == 从集合中删除的行为
  • 删除项目==级联行为

2) 使引用列可为空

这意味着,我们可以让 NHibernate 来执行 UPDATE 和 DELETE。因为列现在可以为空。

这里仅介绍两种解决方法。

我的偏好是:逆=“真”

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法删除集合:[NHibernate.Exceptions.GenericADOException] 的相关文章

  • 用 C# 启动 Windows 服务

    我想启动一个刚刚安装的Windows服务 ServiceBase ServicesToRun if bool Parse System Configuration ConfigurationManager AppSettings RunSe
  • C++ 模板中的名称查找

    我有一些 C 代码 如果没有 fpermissive 选项 就无法再编译 这是我无法分享的专有代码 但我认为我已经能够提取一个简单的测试用例来演示该问题 这是 g 的输出 template eg cpp In instantiation o
  • gtest 和 gmock 有什么区别?

    我试图理解的目的google mock Google 的 C 模拟框架 https github com google googletest blob master googlemock README md 我已经与gtest较早 但我还是
  • 将指针转换为浮点数?

    我有一个unsigned char 通常 这指向一块数据 但在某些情况下 指针就是数据 即 铸造一个int的价值unsigned char 指针 unsigned char intData unsigned char myInteger 反
  • 隐式方法组转换陷阱

    我想知道为什么给定代码的输出 在 LinqPad 中执行 void Main Compare1 Action Main Dump Compare2 Main Dump bool Compare1 Delegate x return x Ac
  • 泛型与接口的实际优势

    在这种情况下 使用泛型与接口的实际优势是什么 void MyMethod IFoo f void MyMethod
  • 在桌面应用程序中,类库的连接字符串存储在哪里?我可以在app.config中使用吗?

    我是桌面应用程序开发的新手 目前正在使用分层架构 用户界面 DAL BLL 构建桌面应用程序 在 Web 开发中 我曾经将连接字符串存储在 web config 中 我的类库从那里访问它 请指导我在桌面应用程序中如何以及在何处存储 DAL
  • 使用静态类型代替变量

    当您的项目不使用命名空间时 有什么方法可以告诉编译器使用静态类型而不是变量吗 例如 我有一个名为 User 的类 它具有各种静态和非静态方法 假设调用了其中一个静态方法GetUser 我想称之为User GetUser 方法来自一个方法 该
  • 将列表(对象)转换为列表(字符串)

    有没有办法转换List of Object to a List of String 在 c 或 vb net 中而不迭代所有项目 幕后迭代很好 我只想要简洁的代码 Update 最好的方法可能就是进行新的选择 myList Select f
  • C++ 中的 Java ArrayList [重复]

    这个问题在这里已经有答案了 在Java中我可以做 List
  • 替换 JSON 中的转义字符

    我想用空格替换 JSON 字符串中的 字符 我怎样才能做到这一点 我发现从 JSON 字符串中删除所有转义字符的最简单 最好的方法是将字符串传递到正则表达式 Unescape 方法 此方法返回一个没有转义字符的新字符串 甚至删除了 n t
  • 获取给定EntityType的导航属性

    我在用VS2010 EF4 0 需要如下功能 private string GetNaviProps Type entityType eg typeof Employee NorthwindEntities en new Northwind
  • 如何附加到 xml

    我有这个xml
  • 从窗口内容截取屏幕截图(无边框)

    我正在寻找有关如何使用 C 将表单内容保存在位图中的解决方案 我已经尝试过使用 DrawToBitmap 但它捕获了所有带边框的窗口 这就是这段代码的结果 public static Bitmap TakeDialogScreenshot
  • 在 ncurses 中使用退格键

    我设置了一个简单的 ncurses 程序 它使用 getch 一次读取一个字符并将它们复制到缓冲区中 我遇到的问题是检测到按下退格键 这是相关代码 while buffer i c getch EOF i if c n break else
  • 如何用C++解析复杂的字符串?

    我试图弄清楚如何使用 解析这个字符串sstream 和C 其格式为 string int int 我需要能够将包含 IP 地址的字符串的第一部分分配给 std string 以下是该字符串的示例 std string 127 0 0 1 1
  • 在 try catch 块中返回到 catch 内是否不好?这是很好的做法

    在 try catch 块中从 C 中的 catch 块返回值是不好的做法吗 try Some code return 1 catch return 0 哪种使用 try catch 的方法是好的做法 不需要 只要返回的值是你想要的 你可以
  • win32 API 和 .NET 框架之间的选择

    我必须开发一个适用于 Windows 的应用程序 该应用程序将能够通过网络摄像头识别手势来控制鼠标 我将使用 vc 2008 进行开发 但我很困惑是使用 NET 框架还是核心 win32 API 性能对于我的应用程序非常重要 根据 Ivor
  • 如何将 Metro 应用部署到桌面?

    我正在尝试将我的 C 应用程序部署到我的 Windows 8 Metro 桌面 我可以在 bin 文件夹中看到部署的文件 但是当我尝试打开它们时 出现以下错误 该应用程序只能在 AppContainer 的上下文中运行 我检查了属性上下文菜
  • C/C++ 通过 Android NDK 在 JNI 中看不到 Java 方法

    我正在尝试从使用 NDK 构建的 C 类文件调用 Java 方法 它不断抛出常见的 未找到非静态方法 错误并导致整个 Android 应用程序崩溃 下面的代码片段 有些东西可能不需要 但我按原样保留它们 因为焦点 问题在于refreshJN

随机推荐

  • GitHub,推送错误:远端意外挂断

    我现在无法将本地提交推送到 github 存储库 我收到一条错误消息 Counting objects 76 done Delta compression using up to 8 threads Compressing objects
  • 如何使用jquery发送int类型参数

    我正在构建一个 Web 服务 它将使用 jquery 与网页进行通信 我想构建我的 Web 服务 使其类型安全 而不需要在服务器端执行转换 如何使用 jquery 从客户端发出 ajax 调用到需要 int 值参数的服务器 编辑 我明白这是
  • 如何在 iOS 上使用 AVMutableComposition 和 CALayers 将多个 CALayer 添加到视频文件

    我想添加多个CALayer按时间顺序一个接一个 我可以使用此链接向视频文件添加一层Here https stackoverflow com q 5997677 1450762 现在我的问题是如何添加多个CALayer到视频文件 提前致谢 最
  • 如何在程序中包含数据对象文件(图像等)并访问符号?

    我使用以下命令将几个资源文件转换为 obj 文件objcopy我将它们与我的程序源代码链接起来 我可以使用以下代码很好地访问程序中目标文件内的符号 但只能使用 GCC G Cygwin extern uint8 t data asm bin
  • 为什么 Supervisor.start_child 不起作用

    我是 Elixir 的初学者 我有一个应用程序在 application ex 中启动一个自定义主管 代码 defmodule MyApp do use Application def start type args do import S
  • 如何使用 Python 提取在 HTML 页面 javascript 块中定义的 JSON 对象?

    我正在下载其中定义了数据的 HTML 页面 方法如下 我想提取 window blog data 中定义的 JSON 对象 有没有比手动解析更简单的方法 我正在研究 Beautiful Soap 但似乎找不到一种无需解析即可返回确切对象的方
  • 如何在phonegap应用程序中添加滚动条

    我正在 PhoneGap 中为 Android 平台开发一个应用程序 在此应用程序中 不显示滚动条 如何在我的应用程序中显示滚动条 这是我的示例活动 它将显示滚动条 public class MyActivity extends Droid
  • 如何在 Laravel 中为 20 分钟后的每条新记录制定调度程序任务?

    我有一个停车系统 我使用 Angular 6 Laravel 作为后端 但我有一个具体问题 我不知道正确的方法 公园有两个图腾 它们向我的服务器发送一个条目 只有当客户从出口走出图腾并进入付款区时 我才会检查客户是否无效 这是我的代码 当他
  • python中日志文件名存储在哪里?

    我有一个由多个模块组成的 Python 程序 main 模块创建一个文件变量log file用于记录输出 所有其他模块也需要写入该文件 但是 我不想将 主 模块导入到其他模块中 因为这将是一个非常奇怪的依赖项 更不用说由于循环依赖它甚至可能
  • 在父级构造函数中设置窗口所有者时遇到问题

    在 WPF 中 在父窗口的构造函数中将窗口的 Owner 属性设置为其父窗口是否有任何问题 不应该有吧 那么为什么我会得到一个XamlParseException从下面的代码 public partial class MainView Wi
  • 如何使用 sqlalchemy 将初始数据加载到数据库中

    我希望能够在使用 SQLAlchemy 创建表时自动加载数据 在 django 中 你有fixtures https docs djangoproject com en dev howto initial data 它允许您在创建表时轻松地
  • 将 PDF 转换为 HTML,保持布局

    有哪些方法可以将 PDF 转换为 HTML 它可以是任何东西 在线服务 软件 图书馆 首选开源 在后一种情况下 首选 php 或 python 它必须保留原始布局 包括页码 脚注等 保留图像 可以将它们组合为每页一个背景图像 并保留链接 它
  • 使用 Javascript 管理 LinkBut​​ton?

    我有一个LinkButton在视图上称为 退出聊天 我嵌入javascript编码成OnClientClink javascript confirm Are you sure you want to end the session 但是 我
  • 使用引导推拉更改列顺序

    我有 3 列 按以下顺序排列 div class container fluid h1 Hello World h1 p Resize the browser window to see the effect p div class row
  • XCODE 不断崩溃。处理自动布局

    我点击关闭自动布局 现在我单击复选框将其打开 xcode 立即崩溃 每次 我很确定所有表格视图都有一个数据源 我无法从事该项目 请帮忙 Process Xcode 5748 Path Applications Xcode app Conte
  • 如何重命名 zip 存档中的文件而不解压并重新压缩它们?

    我需要将 zip 文件中的所有文件重命名为AAAAA filename txt to BBBBB filename txt 我想知道是否可以自动执行此任务 而无需提取所有文件 重命名 然后再次压缩 一次解压缩一个 重命名并再次压缩是可以接受
  • 变量在赋值之前已被使用

    我在任何地方都找不到我的具体问题的答案 所以我想我应该提出一个新问题 我有一个程序可以在 ASCII 和二进制之间转换文本 它通过在第一个数组中查找输入 获取该输入的索引并查看第二个数组中的索引号 然后将找到的内容写入另一个变量来实现此目的
  • 如何修复“使用 libclang.dylib 插件时 Xcode 意外退出”?

    每次启动 xCode 后不久我都会遇到这个 5 1 1 删除了用户数据 关闭了源代码控制 正如一些帖子所建议的那样 没有效果 仍然崩溃 同时显示索引 永远不会完成 甚至重装了xCode 没有任何效果 还是这么说 有人修复过这样的 xCode
  • 在我的登录表单上放置一个圆形进度条

    我设计了这个登录表单来模拟 movil 的 facebook 登录页面 我使用 Web 服务来执行从应用程序到 API 的请求 登录表单设计 https i stack imgur com coEsh png 我想要做的是在执行请求时放置一
  • 无法删除集合:[NHibernate.Exceptions.GenericADOException]

    我有两个表 表 A 和表 B tableA 有列 tabAId col2 col3 tabAId 主键和标识列 表有列 tabAId 名称 tabAId 不为空 我在tableA的hbm文件中创建了Bag 以维护关系