Advertisement
nathanaw

EF STE Change

Nov 1st, 2011
971
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.27 KB | None | 0 0
  1. // EF STE Context.tt file changes
  2. // Somewhere around line 306
  3. // Replace the "Handle Initial Entity State" region with the code below
  4.  
  5.             #region Handle Initial Entity State
  6.  
  7.             var existingEntities = context
  8.                 .ObjectStateManager
  9.                 .GetObjectStateEntries(System.Data.EntityState.Unchanged)
  10.                 .Select(x => x.Entity as IObjectWithChangeTracker)
  11.                 .Where(x => x != null);
  12.  
  13.             var deletes = entityIndex.AllEntities
  14.                 .Where(x => x.ChangeTracker.State == ObjectState.Deleted)
  15.                 .Union(existingEntities
  16.                     .Where(x => x.ChangeTracker.State == ObjectState.Deleted));
  17.  
  18.             var notDeleted = entityIndex.AllEntities
  19.                 .Where(x => x.ChangeTracker.State != ObjectState.Deleted)
  20.                 .Union(existingEntities
  21.                     .Where(x => x.ChangeTracker.State != ObjectState.Deleted));
  22.    
  23.             foreach (IObjectWithChangeTracker changedEntity in deletes)
  24.             {
  25.                 HandleDeletedEntity(context, entityIndex, allRelationships, changedEntity);
  26.             }
  27.    
  28.             foreach (IObjectWithChangeTracker changedEntity in notDeleted)
  29.             {
  30.                 HandleEntity(context, entityIndex, allRelationships, changedEntity);
  31.             }
  32.  
  33.             #endregion
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement