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
非常感谢很多人。我现在感觉非常愚蠢 –