我的问题假设简单插入到没有相关关系的表中。
// various unrelated operations w/context...
var one = new DbRecord();
var two = new DbRecord();
var thr = new DbRecord();
context.DbRecords.Add(one);
context.DbRecords.Add(two);
context.DbRecords.Add(thr);
// various unrelated operations w/context...
context.SaveChanges();
在这种情况下,我的 DbRecord 实体是否总是按照我将它们添加到 DbSet 的顺序插入?他们似乎在我的测试中,但我可以依靠这个吗?
“各种不相关的操作”是指对同一上下文的不同、不相关的 DbSet 上的操作;插入、删除和更新实体(在我的例子中是 POCO)
我希望它们以准确的顺序插入,以便我可以使用 pk/identity 字段进行排序,但我还需要利用上下文围绕我的 context.SaveChanges() 提供的隐式事务。尽管就数据库模式而言,其他操作不相关,但条目本身本质上是有关正在执行的更新的日志条目,它们的顺序很关键。
如果上下文不能保证以相同的顺序插入记录,我将不得不在记录中添加一个日期时间字段,并自己处理回滚。