我试图将数据库插入数据库
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
导致多个引用异常。
我可以重写业务逻辑,不要设置导航属性。但是,任何人都可以用另一种方法帮助我避免这个问题吗?