如何在savechanges之前获取实体的身份并将其设置为另一个实体的外键?

时间:2012-07-20 06:39:38

标签: asp.net-mvc entity-framework

我想在savechanges()之前添加一个实体并获取其身份,并在保存实体框架代码中的更改之前将其设置为另一个实体的外键。有可能吗?

第一个模型

  public class A
{ 
   int AId { get; set; }
   string name { get; set; }
 }

第二个模型

  public class B
{ 
   int BId { get; set; }
   int AId { get; set; }
   string name { get; set; }
 }

和.....

 db.As.Add(A);
 b.AId = A.Aid;
 db.savechanges();

是否有任何文章解释它是如何运作的?

1 个答案:

答案 0 :(得分:1)

A中声明B类型的属性。

public class A
{ 
   int AId { get; set; }
   string name { get; set; }
}

public class B
{ 
   int BId { get; set; }

   virtual A A { get; set; }
   int AId { get; set; }

   string name { get; set; }
}

然后将A的实例分配给该导航属性。 EF将确定实体的插入/更新顺序以解析FK。

 b.A = a;
 db.As.Add(a);
 db.savechanges();