我有Customer和Order类。 客户类具有Order类和DeliveryAddress类作为虚拟属性
class Customer
{
public int custId{get;set;}
public string custName{get;set;}
[ForiegnKey("custId")]
public virtual ICollection<Order> Orders{get;set;}
[ForiegnKey("custId")]
public virtual ICollection<DeliveryAddress> Addresses{get;set;}
}
class Order
{
public int OrderId{get;set;}
public int custId{get;set;}
public string OrdDescription{get;set;}
[ForiegnKey("custId")]
public virtual Customer Customer{get;set;}
}
public class DomainService
{
public void CreateAndSave()
{
Customer A = new Customer();
mycontext.Entity(A).State= EntityState.Added;
Order ord1= new Order();
mycontext.Entity(ord1).State= EntityState.Added;
Order ord2= new Order();
mycontext.Entity(ord2).State= EntityState.Added;
DeliveryAddress adr1= new DeliveryAddress();
mycontext.Entity(adr1).State= EntityState.Added;
DeliveryAddress adr2= new DeliveryAddress();
mycontext.Entity(adr2).State= EntityState.Added;
A.DeliveryAddress.Add(adr1);
A.DeliveryAddress.Add(adr2);
mycontext.SaveChanges();
//After added records into Customer and Order table.I immediately call stored procedure which will update few columns in the newly added records
}
}
我的问题是如何在mycontext中更新Customer和Order类实例的内存实例,以反映存储过程中所做的更改。 我尝试使用Reload方法,但A.Orders显示了上述代码中的4条记录,2条记录,以及另外2条作为Dynamic Proxies对象。 动态代理的另一个问题是,当我更新DeliveryAddress表中记录之一中的列时,它正在尝试更新Order表中的所有列。 请帮助如何在内存中重新加载和跟踪对象,以便我可以使用EF中的上下文进行进一步的更新