/GraphDiff

Entity Framework graph merge extension method

Primary LanguageC#MIT LicenseMIT

GraphDiff

I no longer have the time or inclination to maintain this project. If you would like to maintain this elsewhere please contact me brentmckendrick gmail

DbContext extension methods for Entity Framework Code First, that allow you to save an entire detached Model/Entity, with child Entities and Lists, to the database without writing the code to do it.

This version is for EF6+. If you would like to use the project on EF(4.3,5.0) see this branch https://github.com/refactorthis/GraphDiff/tree/EF4-5.

Please see the initial post @ http://blog.brentmckendrick.com/introducing-graphdiff-for-entity-framework-code-first-allowing-automated-updates-of-a-graph-of-detached-entities/ for more information.

Nuget package is at http://nuget.org/packages/RefactorThis.GraphDiff/

Features

  • Merge an entire graph of detached entities to the database using DbContext.UpdateGraph();
  • Ensures concurrency is maintained for all child entities in the graph
  • Allows for different configuration mappings to ensure that only changes within the defined graph are persisted
  • Comprehensive testing suite to cover many (un/)common scenarios.

Proposed Features

  • Fluent API style mapping of aggregates on bootstrapping
  • Retrieve an aggregate from the database without specifying include expressions
  • Define the aggregate using attributes on the models
  • Allow for the initial db query to be performed as multiple queries where needed (too many includes, etc)

Release Notes

2.0.1

  • Rewrite of graph traversal code and rewrite of tests to cover more scenarios.
  • multiple bug fixes

Collaborators

Brent McKendrick, Andreas Pelzer

License

See the LICENSE file for license rights and limitations (MIT).