0

私はこのような標準的な機能をやっています:

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 でのみ呼び出す必要があります。

どうすればこの狂気を防ぐことができますか? (トランザクション的なことをするのはこれで終わりです!)

ありがとう!

4

1 に答える 1

2

なぜこれを行っているのかがわかりました。これは、変更トラッカーに何もないコード ファーストの移行投稿であるため、EF の観点からは、移行作業を行う以外に実際には何も起こりません。これは、DbContext に対して初めて何かを行うときにのみ発生します。

于 2012-11-09T17:30:34.443 に答える