internal OEEntityEntry(object entity, OEEntitySet entitySet) { _entity = entity; _entitySet = entitySet; _originalValues = new Dictionary <string, object>(); InitializeOriginalValues(); _modifiedProperties = new List <OEModifiedPropertyInfo>(); ModifiedProperties = new ReadOnlyCollection <OEModifiedPropertyInfo>(_modifiedProperties); }
internal OEEntityEntry AttachEntry <TEntity>(TEntity entity, OEEntitySet entitySet) where TEntity : class { var entityEntry = _trackingEntityCollection.FirstOrDefault(p => p.Entity == entity); if (entityEntry == null) { entityEntry = new OEEntityEntry(entity, entitySet) { State = OEEntityState.Unchanged }; _trackingEntityCollection.Add(entityEntry); if (typeof(INotifyPropertyChanged).IsAssignableFrom(entity.GetType())) { ((INotifyPropertyChanged)entity).PropertyChanged += Entity_PropertyChanged; } } return(entityEntry); }