0
我在我的數據庫中有一個Services表和一個BodyAreas表。他們通過多對多的關係相連。在這裏,我試圖從CSV中加載服務,我也有相關的BodyAreas。違反PRIMARY KEY約束'PK_dbo.ServiceBodyAreas'。不能在對象'dbo.ServiceBodyAreas'中插入重複鍵'
var record = reader.GetRecord<ServiceModel>();
service.Name = record.Service;
service.Code = record.ID;
service.Description = record.Description;
service.Price = decimal.Parse(record.Price_Uninsured);
service.Specialties = new[]
{
context.Specialties.FirstOrDefault(b => b.Name == record.Category),
};
service.ServiceType = serviceType;
service.BodyAreas = new List<BodyArea>();
string[] items = record.Body_Areas.Split(new char[] { ',' });
foreach (var item in items)
{
BodyArea bA = context.BodyAreas.Single(x => x.Name == item);
if (bA != null)
{
service.BodyAreas.Add(bA);
}
}
var entry = context.Entry(service);
if (entry.State == EntityState.Unchanged)
entry.CurrentValues.SetValues(service);
else
context.Services.Add(service);
但是,當我從包管理器控制檯運行update-database命令我得到這個錯誤:
InnerException = {"Violation of PRIMARY KEY constraint 'PK_dbo.ServiceBodyAreas'. Cannot insert duplicate key in object 'dbo.ServiceBodyAreas'. The duplicate key value is (1, 17).\r\nThe statement has been terminated."}
希望你的Body_Areas沒有重複的元素 – techspider
非常感謝很多人。我現在感覺非常愚蠢 –