Есть ли способ сохранить один объект с помощью Entity Framework Core, если уже есть измененные объекты, которые он отслеживает?
Используя Entity Framework Core, я собираю объекты для сохранения. Во время этого пакетного процесса я хочу явно создать новый объект и не хочу, чтобы другие объекты еще создавались.
public void Generate()
{
DbContext context = GetDbContext();
context.Add(new MyUser());
context.Add(new MyUser());
DoSomethingElse(context);
context.SaveChanges();
}
public void DoSomethingElse(DbContext context)
{
var something = new Something();
// add new object and save only this new object
}
Есть ли способ сохранить something
без сохранения двух User
объекты?
Я думал об использовании нового экземпляра DbContext, это будет стоить много времени для создания экземпляра?
1 ответ
Решение
Если DoSomethingElse
не зависит от предыдущих действий, тогда рассмотрите возможность разделения на отдельные единицы работы.
Например
public void Generate() {
DbContext context = GetDbContext();
DoSomething(context);
DoSomethingElse(context);
}
public void DoSomething(DbContext context) {
var something = new Something();
// add new object and save only this new object
context.SaveChanges();
}
public void DoSomethingElse(DbContext context) {
context.Add(new MyUser());
context.Add(new MyUser());
context.SaveChanges();
}