refactorthis/GraphDiff — pull request #118 by tmol (2014-11-26 14:20:44+00:00)
Title: added persisted object injection

Hi guys,

I am working on an enterprise project where the main entity is very complex, quite few OwnedCollections in other OwnedCollections etc.The first update takes around 10 second using GraphDiff because of loading the entity in the GraphDiffer.Merge method. After the query compilation, the query is cached by EF but only for that specific entity with that specific key, if another entity is updated, the first update takes again 10 seconds.

I extended DbContextExtensions with another method where the already loaded entity can be provided, this way the LoadEntity is skipped and only the Merge happens:

public static T UpdateGraph(this DbContext context, T entity, T persisted, Expression, object>> mapping) where T : class

If you will accept the pull request, I will create the necessary unit tests and then notify you for merge.

I think that too many parameters are passed around in the DbContextExtensions UpdateGraph methods overloads, maybe a parameter class would be helpful there.

Cheers,

Tibi