我试图在单个视图中更新复杂模型.我正在使用ASP.NET MVC3,Entity Framework with Code first,工作单元,通用存储库模式..但是当我尝试更新模型时,我想出了这个错误:
发生了引用完整性约束违规:定义引用约束的属性值在关系中的主体和从属对象之间不一致.
这是我的简化视图模型:
public class TransactionViewModel
{
public Transaction Transaction { get; set; }
public bool IsUserSubmitting { get; set; }
public IEnumerable<SelectListItem> ContractTypes { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
这是我的简化复杂模型,并作为其导航属性之一的示例.Transaction与其所有导航属性具有一对一的关系:
public class Transaction
{
[Key]
public int Id { get; set; }
public int CurrentStageId { get; set; }
public int? BidId { get; set; }
public int? EvaluationId { get; set; }
public virtual Stage CurrentStage { get; set; }
public virtual Bid Bid …Run Code Online (Sandbox Code Playgroud) 订单和联系人之间有1-1的关系.即Contact.OrderId引用订单,也是PK.
所以我有一个现有的订单,我就像这样添加一个新的联系人......
order.Contact = new Contact() { EmailAddress = "hello" };
context.Orders.Attach(order);
context.SaveChanges();
Run Code Online (Sandbox Code Playgroud)
发生了引用完整性约束违规:定义引用约束的属性值在关系中的主体和从属对象之间不一致.
那么我做错了什么?