数据库更新调用后,实体框架如何更新实体

时间:2019-09-10 20:43:46

标签: entity-framework dbcontext

我有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中的上下文进行进一步的更新

0 个答案:

没有答案