C# 在DbContext CodeFirst中使用分离的POCO对象更新实体框架
所以我有一个视图,其中我修改了一个“复杂”对象,这意味着它有其他对象的集合,你知道通常的事情:C# 在DbContext CodeFirst中使用分离的POCO对象更新实体框架,c#,asp.net-mvc,entity-framework,C#,Asp.net Mvc,Entity Framework,所以我有一个视图,其中我修改了一个“复杂”对象,这意味着它有其他对象的集合,你知道通常的事情: [Table("Customer")] public class Customer { [Key, Column("IdCustomer")] public int IdCustomer {get; set;} [Column("FirstName")] public string FirstName { get; set;} [Column("LastN
[Table("Customer")]
public class Customer
{
[Key, Column("IdCustomer")]
public int IdCustomer {get; set;}
[Column("FirstName")]
public string FirstName { get; set;}
[Column("LastName")]
public string LastName { get; set;}
public virtual List<Order> Orders { get; set; }
}
[Table("Order")]
public class Order
{
[Key, Column("IdOrder")]
public int IdOrder {get; set;}
[Column("Quantity")]
public int Quantity {get; set;}
[Column("Amount")]
public decimal Amount {get; set;}
[Column("IdCustomer"), ForeignKey("Customer")]
public int IdCustomer { get; set; }
public virtual Customer Customer { get; set; }
}
现在,接收到的对象只是一个普通对象,没有被DbContex跟踪。这是从MVC3从视图JS发送的json自动序列化的,但我知道并确保它与它所表示的EF类具有相同的结构
我想知道的是:是否可以保存整个对象及其相关对象的修改,而不实际递归整个对象
例如
一位现有客户有3份订单,1份被删除,另一份更改了数据,并添加了一份新订单,因此我最终得到了:
提前感谢。您可以在此处投票支持改进对断开连接实体的支持:。还有一个链接指向一个名为GraphDiff的第三方工具,该工具可能适用于youThanks@Colin。最后我手动完成了它,因为我找不到这样做的方法。
[HttpPost]
[AcceptVerbs(HttpVerbs.Post)]
public ContentResult Save(Customer customer) {
//saving code
}