我正在使用事务在多个表中插入多行.对于这些行,我想按顺序添加这些行.在调用SaveChanges时,所有行都不按顺序插入.
当不使用事务并在每次插入后保存更改确实保持顺序,但我确实需要所有条目的事务.
所以,我有一个DBContext,我正在做以下操作:
dbContext.SomeTables1.Add(object1)
dbContext.SomeTables2.AddRange(objectArray2)
dbContext.SomeTables3.AddRange(objectArray3)
dbContext.SaveChanges();
Run Code Online (Sandbox Code Playgroud)
EF不按此顺序插入db记录,它以随机顺序插入它们.要按相同的顺序插入它们,我必须dbContext.SaveChanges()在每次添加后再执行一次.这不是一个有效的解决方案,在我的情况下,我需要10秒钟来完成所有插入,而一次保存的随机顺序大约需要3秒.
NB我需要正确的命令来解决死锁问题.
我的问题是:
- 这个问题在EF7中解决了吗?
- 我可以对EF进行概要分析并确定随机顺序,但是,是否可以保证它与相同的随机顺序保持一致,还是在请求之间进行更改?(如果这个问题的答案是肯定的,我可以采用我的其他代码).
- 维持订单是否有比
dbContext.SaveChanges()每次添加更好的方法?
c# entity-framework entity-framework-6 entity-framework-core
实际上我需要类似的东西,List<KeyValuePair<T, U>>但我希望能够像字典一样初始化它(即new KeyValuePair每次都不写).像这样:
Dictionary<string, string> dic = new Dictionary<string, string>
{
{ "key1", "value1"},
{ "key2", "value2"}
};
Run Code Online (Sandbox Code Playgroud)