从 NHibernate 获取 {“无法执行批处理命令。[SQL:SQL 不可用]”} 错误

Jav*_*p84 5 c# sql nhibernate fluent-nhibernate c#-4.0

我查看了其他相关帖子,但找不到任何解决方案。
有时在 sesstion.Flush() 上我收到以下错误:

{“无法执行批处理命令。[SQL:SQL 不可用]”}

和内部异常:

{“UPDATE 语句与 FOREIGN KEY 约束 FK1377052553ABF955 冲突。冲突发生在数据库 ProcessDebug,表 dbo.Adjustment,列 'AdjustmentId'。该语句已终止。”}

一块 Process 类映射:

   References(p => p.CurrentAdjustment)
        ;

    References(p => p.DefaultAdjustment)
        ;

    HasMany(p => p.Adjustments)
        .Cascade.AllDeleteOrphan()
        .Inverse()
        ;
Run Code Online (Sandbox Code Playgroud)

以上所有这些属性都是调整类型。只要我偶尔收到这个错误,我就无法追踪它。对于一个实体,它现在可能会发生,但下次不会发生在同一段代码中......

知道什么可能导致问题吗?
我正在使用 NH 3.2 和 FluentNhibernate
提前致谢

zch*_*pit 5

在我的情况下,数据库列之一为“NULL”。检查您的数据库数据。

FOREIGN KEY -> 这意味着您可能有 null i 列,用于“join”。

ps 使用 SQL Profiler 并检查 nHibernate 生成的 SQL。


Col*_*e W 3

您需要查看实际尝试执行的 sql。

您似乎正在尝试将主键(“AdjustmentId”)更新为不存在的内容。因此发生了外键违规。