实体框架 – 行插入顺序实体框架

前端之家收集整理的这篇文章主要介绍了实体框架 – 行插入顺序实体框架前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用事务在多个表中插入多行.对于这些行,我想按顺序添加这些行.调用SaveChanges后,所有行都将按顺序插入.

当不使用事务并保存更改后,每次插入确实保持顺序,但我真的需要一个所有条目的事务.

解决方法

实体框架中的订单插入/更新和删除取决于实体框架中的许多内容.

例如,如果您在新类别中插入新产品,我们必须在产品之前添加类别.

这意味着如果您有一大组更改,那么我们必须首先满足当地的排序限制,而且这正是我们所做的.

在上下文中执行操作的顺序可能与这些规则相冲突.例如,如果你这样做:

ctx.AddToProducts(
   new Product{
      Name = "Bovril",Category = new Category {Name = "Food"}
   }
);

效果是产品首先添加到(上下文),然后当我们走图时,我们添加类别.

即在上下文中的插入顺序是:

Product
Category

但是由于引用完整性约束,我们必须重新排序,然后再尝试插入数据库

Category
Product

所以这种当地的重新排序是不可协商的.

但是,如果没有这样的本地依赖,您可以理论上保留排序.不幸的是,我们目前没有跟踪“什么时候”的内容,为了效率,我们不跟踪实体,以保持结构像列表.因此,我们目前无法保留无关插入的顺序.

不过,我们最近正在辩论这个问题,所以我很想看看这对你来说至关重要

希望这可以帮助

亚历克斯

项目经理实体框架小组

猜你在找的MsSQL相关文章