Col*_*ion 5 c# entity-framework lazy-loading cascading-deletes
我正在使用Northwind示例数据库.我有这个代码:
var db = new NorthwindEntities();
int id = 2; // Example
var delObject = (from o in db.Orders.Include("Order_Details")
where o.OrderID == id
select o).First();
db.Orders.DeleteObject(delObject);
db.SaveChanges();
Run Code Online (Sandbox Code Playgroud)
我在订单 - 订单明细中有一个(1对多)关联,带有级联删除.(如果我删除一个订单,将删除具有相同OrderID的所有Order_Details).
我启用了 LazyLoading .
如果删除.Include("Order_Details")from子句中的,则级联删除将不起作用.
为什么会这样?是不是懒惰的初始化应该为我"包含"Order_Details,最终让我级联删除?
级联删除在EF模型中定义.
因此,EF将为已加载的数据生成删除语句.EF不会去数据库检查它应删除的内容.
您可以在数据库级别定义级联删除(取决于您的数据库).在这种情况下,EF将删除顶级节点,数据库将删除相关的行.
| 归档时间: |
|
| 查看次数: |
1990 次 |
| 最近记录: |