Wednesday, April 13, 2011

SaveOptions in .net

SaveOptions.DetectChangesBeforeSave : this is the default. When you do ObjectContext.SaveChanges(), the method DetectChanges() is called to synchronized attach entities in the OSM.

SaveOptions.AcceptAllChangesAfterSave : When you do ObjectContext.SaveChanges(), the method AcceptAllChanges() is called - which is the guts of the OSM, where the entities in the graph are iterated, addresses and set to Unchanged/Detached.

SaveOptions.None : When you do ObjectContext.SaveChanges(), changes are saved immeditately - no synchronization at all. Whatever is in the graph is what will be saved.

In my experience i have not messed with this - i've left it as the default (DetectChangesBeforeSave).

Sometimes with POCO's i have heard you need to explicitly call DetectChanges, but i've never seen a recommendation/solution to change the SaveOptions to none.

Are you sure the solution in that question is to set SaveOptions to none? Maybe you should provide detail (or ask a seperate question) as to the error your getting, as a change like this will affect your entire persistence layer.

No comments:

Post a Comment