DbSet<> .Add导致调用SaveChanges。为什么?

时间:2012-11-09 16:42:29

标签: entity-framework dbcontext

我正在做一个像这样的标准函数:

var dbCxt = new dbContext();
var entity = new entity();
entity.Property = "123";
dbCxt.EntitySet.Add(entity); <== SaveChanges is called!!!!

//Do some child stuff.

dbCxt.SaveChanges();

当我在DbContext中覆盖SaveChangs并且在Add to the DbSet中调用它时,我感到很惊讶。为什么在Add上调用它?它应该只在像ObjectContext这样的SaveChanges上调用它!

如何防止这种疯狂? (做任何交易的事情都很多!)

谢谢!

1 个答案:

答案 0 :(得分:2)

我弄明白为什么要这样做。这是代码第一个迁移帖子,在更改跟踪器中没有任何内容,因此除了执行迁移工作之外,从EF角度来看实际上没有任何实际发生。它仅在您第一次对DbContext执行任何操作时发生。