dbContext条目状态自动更改,导致多个引用异常

时间:2014-11-08 08:40:43

标签: c# entity-framework dbcontext

我试图将数据库插入数据库

public class InventoryItem {
    [Key]
    public int InventoryItemId { get; set; }

    public int InStockNumber { get; set; }

    public int InventoryItemTypeID { get; set; }

    [ForeignKey("InventoryItemTypeID")]
    public virtual InventoryItemType InventoryItemType { get; set; }
}

其次,经过一些商业逻辑

   inventoryItem.InventoryItemType = itemTypesRepository.Find(243);
   inventoryItem.InventoryItemTypeId = 243;

在此之后我尝试了:        context.InventoryItems.Add(inventoryItem); //是InventoryItems是DbSet

但是这会导致多个引用异常。 如果我删除了导航属性InventoryItemType集,它运行正常。但出于其他原因我需要它。

所以我尝试手动做一些事情

    var entry = context.Entry(inventoryitem);

    // New entity
    if (entry.State == EntityState.Detached)
    {
        entry.State = EntityState.Added;
    }

问题在于,context.Entry会自动添加条目和行        entry.State = EntitySate.Added

导致多个引用异常。

我可以重写业务逻辑,不要设置导航属性。但是,任何人都可以用另一种方法帮助我避免这个问题吗?

0 个答案:

没有答案