我需要有关Entity Framework的帮助。我有一个这样的图表:
说明
当我执行代码以从Fly_Product
实体
控制器:
public ActionResult Create(ProductVM obj)
{
try
{
obj.Product.Published = obj.isPublish;
obj.Product.Deleted = obj.isDelete;
obj.Product.ShowOnHomePage = obj.isHome;
obj.ProductVariant.IsShipEnabled = obj.isShipEnabled;
obj.ProductVariant.IsFreeShipping = obj.isFreeShipping;
obj.ProductVariant.CallForPrice = obj.isCallForPrice;
obj.ProductVariant.isHot = obj.isHot;
obj.ProductVariant.isNew = obj.isNew;
obj.ProductVariant.isGift = obj.isGift;
obj.ProductVariant.Fly_ProductVariant_Discount_Mapping.Add(new Fly_ProductVariant_Discount_Mapping { DiscountID = obj.indexDiscount, Createdon = DateTime.Now });
obj.Product.Fly_ProductVariant.Add(obj.ProductVariant);
obj.Product.Fly_ProductLocalized.Add(obj.ProductLocalized);
obj.Product.Fly_ProductPicture.Add(obj.ProductPictures);
obj.Product.Fly_Product_Category_Mapping.Add(new Fly_Product_Category_Mapping { CategoryID = obj.indexCate });
obj.Product.Fly_Product_Manufacturer_Mapping.Add(new Fly_Product_Manufacturer_Mapping { ManufacturerID = obj.indexManufacturer });
repository.Add(obj.Product);
return RedirectToAction("Index");
}
catch (Exception e)
{
return View(e.Message);
}
}
数据访问:
public void Add(Fly_Product obj)
{
try
{
using (var context = new flycameraEntities())
{
context.Fly_Product.Add(obj);
context.SaveChanges();
}
}
catch (Exception ex)
{
throw ex;
}
}
并捕捉异常:
违反PRIMARY KEY约束'PK_Fly_ProductVariant_Discount_Mapping'。无法在对象'dbo中插入重复键.Fly_ProductVariant_Discount_Mapping'
解决:
我忘了指定列DiscountMappingID
自动递增。谢谢 Gert Arnold 得到了帮助