C# 在我的创建控制器的两个不同表中添加值
我有一个Create控制器,它使用db.Add,dbSaveChanges()在一个表[Kursus_kursist]中创建一条记录。 我需要根据其中一个值(kursus_kursist_id,是一个int)在另一个表[jobcoach]中创建一个记录,但我不知道如何传递该值C# 在我的创建控制器的两个不同表中添加值,c#,sql-server,asp.net-mvc,C#,Sql Server,Asp.net Mvc,我有一个Create控制器,它使用db.Add,dbSaveChanges()在一个表[Kursus_kursist]中创建一条记录。 我需要根据其中一个值(kursus_kursist_id,是一个int)在另一个表[jobcoach]中创建一个记录,但我不知道如何传递该值 public ActionResult Create([Bind(Include = "kursus_kursist_id,kursist_id,status, jc")] kursus_kursist kursu
public ActionResult Create([Bind(Include = "kursus_kursist_id,kursist_id,status, jc")] kursus_kursist kursus_kursist)
{
if (ModelState.IsValid)
{
db.kursus_kursist.Add(kursus_kursist);
db.SaveChanges();
db.jobcoach.Add(/*I THINK THE KURSUS_KURSIST_ID NEEDS TO GO HERE*/);
db.SaveChanges();
return RedirectToAction("../kursister/Index");
}
我已经能够在usus_kursist和jobcoach表中创建一个记录,但是在jobcoach表中,我没有得到kursus_kursist id-因此基本上是一个空记录(除了PK)。当您添加到数据库并保存时,该实体会被跟踪。被跟踪的实体具有指定的Id
var myEntity = new SomeEntity(){
Name="Test",
CreatedDate = DateTime.UtcNow
}
dbContext.MyEntities.Add(myEntity);
dbContext.SaveChanges();
Console.WriteLine(myEntity.Id);
这将为您提供实体分配的正确Id。
如果JobCoach已连接,则还可以将其添加到现有关系中
var myEntity = new SomeEntity(){
Name="Test",
CreatedDate = DateTime.UtcNow,
MyChildObject = new ChildObject(){
Name="Something else",
CreatedDate = DateTime.UtcNow
}
dbContext.MyEntities.Add(myEntity);
dbContext.SaveChanges();
Console.WriteLine(myEntity.MyChildObject.Id);
因此,在您的情况下,您应该能够在保存该实体后使用第一个kursist_thingie.Id。分配JobCoach.KursistId=kursist_thingie.Id或您喜欢的方式
希望有帮助