【发布时间】:2018-11-25 04:30:22
【问题描述】:
我必须将数据从一个数据库迁移到另一个数据库。应保留密钥。
我将 EF 与自动生成的 .dbmx 文件一起使用。我已经阅读了许多类似问题的答案并遵循了这些建议:我确实在插入条目之前将IDENTITY_INSERT 开启;在数据库图表上,我将Id 列上的StoreGeneratedPattern 更改为None(也尝试将相应的属性添加到Id 属性)。
这是我的代码:
var myEntity = new MyTable
{
Id = 12345,
Name = "Lorem ipsum",
BrandId = brandId,
};
MyContext.Database.ExecuteSqlCommand("SET IDENTITY_INSERT MY_TABLE_NAME ON");
MyContext.MyTable.Add(myEntity);
await MyContext.SaveChangesAsync(); //getting error here
在 Management Studio 中执行此操作时,效果很好。该问题仅在使用实体框架时出现。
我可以在 SQL Server Profiler 中看到 INSERT_IDENTITY 命令已执行并且插入 SQL 带有 Id 列,但似乎没有执行,这看起来很奇怪。当我复制粘贴此 SQL 查询时,它工作得很好。
【问题讨论】:
标签: c# entity-framework ef-database-first identity-insert