使用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的新实例,实例化会花费多少?
答案 0 :(得分:2)
如果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();
}