Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 如何在保存更改之前获取实体的标识并将其设置为另一实体的外键?_Asp.net Mvc_Entity Framework - Fatal编程技术网

Asp.net mvc 如何在保存更改之前获取实体的标识并将其设置为另一实体的外键?

Asp.net mvc 如何在保存更改之前获取实体的标识并将其设置为另一实体的外键?,asp.net-mvc,entity-framework,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 { ge

我想添加和一个实体,并在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();

有没有文章解释它是如何工作的?

B
中声明
a
类型的属性

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将确定解决FKs的实体的插入/更新顺序

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

B
中声明类型为
a
的属性

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将确定解决FKs的实体的插入/更新顺序

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