0

我正在尝试使用“删除”方法从我的上下文中删除对象。但我得到一个 UpdateException 说:

ORA-01407: 无法将 ("NAMUR_TEST_ALERTE"."TX_HST_TRACE_DATA"."TRD_ID_INFO_TRACE") 更新为 NULL

其中 TRD_ID_INFO_TRACE 是我的外键。

这是我的查询 linq :

List<Trace> query = (from t in Repository.DataContext.Trace                                          
                                     .Include("Datas")
                                      select t).ToList<Trace>();

如果我禁止包含指令。它工作正常。

但我不能,因为这样做的目的是检索数据,使用序列化存储它们,最后从数据库中删除它们。

我怎样才能使删除保留我的包含?

提前致谢 !

4

1 回答 1

1

问题是您的模型没有配置为级联删除,但您的数据库可能是。如果模型未配置为级联删除,则删除主体实体将强制将依赖实体中的 FK 设置为 null,并且此更改将作为更新发送到数据库。

解决此问题的一种方法是在 EDMX 或 ftuent API 中配置您的关系(它应该是默认映射的约定)以级联删除。另一种方法是在删除跟踪实例之前在代码中删除所有相关的数据实例。

于 2012-05-22T10:39:49.203 回答