EntityFramework.TypedOriginalValues
Get typed access to the OriginalValues of your entity properties. Simple and complex properties are supported, navigation/collections are not.
| EF version | .NET support | NuGet package |
|---|---|---|
| 6.1.3 | >= Framework 4.6.1 | |
| Core 2.0 | >= Framework 4.6.1 || >= Standard 2.0 |
Usage
using (var context = new Context()) { var me = await context.People.SingleAsync(x => x.Name == "Nick"); me.EmployeeNumber = 42; // change the value // but wait! maybe we want to see what the value was inside some other mechanism, after we changed it (i.e. logging, auditing, etc.) // old and busted var og = (int) context.Entry(me).Property(nameof(EmployeeNumber)).OriginalValue; // new hotness var og = context.GetOriginal(me).EmployeeNumber; await context.SaveChangesAsync(); // save that new value }
How it works
A type is emitted at run-time which wraps the change tracking object of your DbContext. This type inherits from your entity type, so you get typed access to its properties. It behaves like a read-only snapshot of your entities original state.
Contributing
- Create an issue
- Let's find some point of agreement on your suggestion.
- Fork it!
- Create your feature branch:
git checkout -b my-new-feature - Commit your changes:
git commit -am 'Add some feature' - Push to the branch:
git push origin my-new-feature - Submit a pull request :D