添加数据时是否可以确保顺序?

时间:2019-08-22 07:17:04

标签: entity-framework entity-framework-core

在某些情况下,我想以与原始行相同的顺序复制一些行。因此,我希望可以按ID对原始行进行排序,然后以相同的方式创建新记录。

但是我不知道EF是否确保插入顺序,或者是否有某种配置可以确保插入顺序。

一种解决方案是使用事务处理,在添加新行之后执行SaveChanges()并最终提交事务。但是我想避免这种情况,因为这将使我使用许多SaveChanges(),并且如果由于某种原因由于某些原因而无法执行该操作,则分配的ID将丢失并且我将有空白。确实,这第二个原因并不重要,但我想尽可能避免出现空白。

谢谢。

1 个答案:

答案 0 :(得分:1)

如果您的帐户具有足够的权限:

ExecuteSqlCommand(@"SET IDENTITY_INSERT [dbo].[TABLENAME] ON");
//do insert with original ids, meaning the primary key can't already exist in the target table
context.SaveChanges();
context.Database.ExecuteSqlCommand(@"SET IDENTITY_INSERT [dbo].[TABLENAME] OFF");