У меня следующая ситуация:
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;}
.....
}
Поскольку эти два объекта не связаны друг с другом, ни в DB, ни в модели EF, я пытаюсь получить CarID и добавить его в поле Number, всевместе в одной транзакции БД, без обновления.
Я знаю, как это сделать в 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.