首页 新闻 搜索 专区 学院

EF用导航熟悉遍历从表时,删除主表出错

0
悬赏园豆:200 [已解决问题] 解决于 2020-05-27 18:43

1 var entitys= Repository.Table.Where(a => ids.Contains(a.UUID)).ToList();
2 entitys.ForEach(a =>
3 {
4 foreach (var deductionitem in a.Deductionitems){}
5 DoDelete(a);
6 }
DeductionItems和主表配了级联删除,代码执行时会抛The relationship could not be changed because one or more of the foreign-key properties is non-nullable
如果去掉对从表的遍历就能成功删除,为什么会这样呢

Cyril-Hcj的主页 Cyril-Hcj | 初学一级 | 园豆:4
提问于:2019-10-16 23:04
< >
分享
最佳答案
0
收获园豆:200
通信的搞程序 | 小虾三级 |园豆:1694 | 2019-10-17 08:04

我还是没懂为什么我只是遍历了从表级联删除就失效了呢

Cyril-Hcj | 园豆:4 (初学一级) | 2019-10-17 08:37

@程桔: 因为循环第一次的时候已经把A及其子表信息删除了,第二次还能删除什么

通信的搞程序 | 园豆:1694 (小虾三级) | 2019-10-17 08:39

@通信的搞程序: 其实是a的从表并没有被删除,如果我去遍历a的从表的话,我必须要手动删除a的从表才行

Cyril-Hcj | 园豆:4 (初学一级) | 2019-10-17 08:42

@程桔: 我都是配置删除主表自动删除从表的,手动删除没用过

通信的搞程序 | 园豆:1694 (小虾三级) | 2019-10-17 08:47

@通信的搞程序: 我也是配了主从表级联删除的,但是但我通过导航属性去变量从表时,级联删除就失效了

Cyril-Hcj | 园豆:4 (初学一级) | 2019-10-17 08:50
其他回答(1)
0

遍历子表后,EF无法分辨该记录是否要保留。所有需要手动删除从表,不能再依赖级联删除

Cyril-Hcj | 园豆:4 (初学一级) | 2020-05-27 18:42

卧槽,结错帖

支持(0) 反对(0) Cyril-Hcj | 园豆:4 (初学一级) | 2020-05-27 18:44

我的200豆子啊

支持(0) 反对(0) Cyril-Hcj | 园豆:4 (初学一级) | 2020-05-27 18:46
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册