猿问

如何在单个事务中重复使用从实体框架返回的ID

我有以下情况:


public class Car 

{

     public int ID {get;set} // identity in DB

     ...

}


public class Book

{

    public int ID {get; set;} // identity in DB

    public int Number {get; set;}

    .....

}

由于在数据库和EF模型中这两个实体都不相关,所以我试图获取CarID并将其添加到Number字段,所有这些都在一个DB事务中一起进行,而没有更新。


我知道如何在T-SQL中执行此操作:


 INSERT INTO dbo.Car ()...

 INSERT INTO dbo.Book(Number) VALUES scope_identity. 

以下代码在C#+ EF(不是CORE)中。


public void MyMethod()

{

   var newCar = newCar();

   var newBook = newBook();


  myContext.Cars.Add(newCar);

  myContext.Books.Add(newBook);

  newBook.Number = newCar.ID;


  myContext.SaveChanges();

}

//this example doesn't work, Number is always 0.

上面的示例已简化,可能违反了某些模式,但重点是如何使用EF进行此工作。


ibeautiful
浏览 115回答 1
1回答
随时随地看视频慕课网APP
我要回答