У меня есть одна база данных, и мне нужно выполнить миграцию, другими словами мне нужно переместить данные в другую базу данных. Я использовал EF и автоматически генерировал классы с EDO. Проблема в newDb.SaveChanges встречается,() Вот мой код:Как избежать System.Data.Entity.Infrastructure.DbUpdateException при выполнении миграции
var oldDb = new oldBAEntity();
var newDb = new NewDbContextEntities();
var query2 = oldDb.R_ClaimHistory.ToList();
foreach (var sourceObj in query2)
{
ClaimComment targetobj = new ClaimComment();
targetobj.ClaimId = (int)sourceObj.IdClaim;
targetobj.Comment = sourceObj.HistClaimDescription;
targetobj.UserCreated = (int)sourceObj.IdUserCreated;
targetobj.DateCreated = sourceObj.DateCreated;
newDb.ClaimComments.Add(targetobj);
}
newdb.SaveChanges();
Когда я запускаю его, я получаю эту ошибку:
System.Data.Entity.Infrastructure.DbUpdateException
InnerException:
Оператор INSERT противоречил ограничениям FOREIGN KEY \ "FK_ClaimComments_Claims \". Конфликт произошел в базе данных «Toni-Bank-DB», таблице «dbo.Claims», в столбце «ID». \ R \ nПриложение завершено.
Да, Крис. Я остановился и подумал полчаса. Я узнал, что заполняю эту таблицу, а таблица претензий пуста, поэтому, когда я заполняю первую таблицу требований и заполняю таблицу ClaimsComments, ошибка не будет отображаться снова – Toni