How do I temporarily turn off an IDENTITY column in EF Code First?

后端 未结 2 1260
耶瑟儿~
耶瑟儿~ 2020-12-11 06:34

I\'m creating a rewrite of an existing application in EF Code First, but I need to import some of the data from the existing application\'s database. Here\'s the definition

相关标签:
2条回答
  • 2020-12-11 07:24

    I recently ran into this same issue. In my case, I was using SQL Server CE. Here's a link to my solution:

    Inserting all rows of a DataTable into a SQL Server table, including Id values (scroll down to Edit 2)

    This is basically Diego's solution #1 -- raw ADO.NET. It's not a great solution because you will need to customize the queries to account for any differences in databases, but hopefully it will help solve your problem for the moment.

    0 讨论(0)
  • 2020-12-11 07:30

    You can't. Executing a set identity_insert command changes the behavior of SQL Server, but not the behavior of Entity Framework.

    You have three choices for importing records:

    • Use raw ADO.NET commands (not entities) or ExecuteSqlCommand.
    • Use a different DbContext, in which you define the keys as non-generated.
    • Use a different technology that's more suited for data conversion, like SSIS
    0 讨论(0)
提交回复
热议问题