如何在Entity框架中的一个事务中更新父表和子表

时间:2014-01-23 08:39:27

标签: entity-framework c#-4.0 entity-framework-4 linq-to-entities

假设我有以下父表的结构,

public partial class CustomerDetail
    {
        public CustomerDetail()
        {
            this.DependentDetails = new HashSet<DependentDetail>();

        }

        public int CustomerId { get; set; }
        public string Title { get; set; }
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public string Gender { get; set; }


        public virtual ICollection<DependentDetail> DependentDetails { get; set; }

    }

子表结构是,

 public partial class DependentDetail
    {
        public int DependentId { get; set; }
        public Nullable<int> CustomerId { get; set; }
        public string Relationship { get; set; }
        public string Gender { get; set; }
        public Nullable<System.DateTime> DateOfBirth { get; set; }
        public string FirstName { get; set; }
        public string LastName { get; set; }

        public virtual CustomerDetail CustomerDetail { get; set; }
    }

如果我想使用Entity框架更新这两个表,该怎么做?

请建议。

1 个答案:

答案 0 :(得分:0)

使用Entity framework

将新记录插入数据库
var customer=new CustomerDetail();
customer.Title ="Customer";
customer.FirstName ="First";
customer.LastName ="Last";
customer.Gender ="Male";
var dependent=new DependentDetail();
dependent.Relationship ="Test";
.
.
.
customer.DependentDetails.Add(dependent);

while updating dependent

var customer=Repository.find(CustomerId);
//update customer details here
var dependent=customer.DependentDetails.where(x=>x.DependentId ==DependentId).FirstOrDefault();
dependent.RelationShip="Test";

///call save function