将实体关系添加到实体框架

时间:2015-07-12 14:09:29

标签: c# entity-framework asp.net-mvc-4 model-view-controller

我需要有关Entity Framework的帮助。我有一个这样的图表:

Diagram 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 得到了帮助

0 个答案:

没有答案