Мне нужно перенести данные из одной базы данных в другую.Ключи должны быть сохранены.Я использую EF с автоматически сгенерированным .dbmx
файлом.Я прочитал много ответов на подобную проблему и следую этим советам: я включаю IDENTITY_INSERT
ВКЛ точно перед вставкой записи;на диаграмме базы данных я изменил StoreGeneratedPattern
на None
в столбце Id
(также попытался сделать то же самое с добавлением соответствующего атрибута к свойству 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, все работает просто отлично.Проблема возникает только при использовании Entity Framework.
Что выглядит странно, что я вижу в SQL Server Profiler, что команда INSERT_IDENTITY
выполняется и вставка SQL идет со столбцом Id
, но, похоже, не выполняется.Когда я копирую и вставляю этот SQL-запрос, он прекрасно работает.