Пример #1
0
        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);
        }
Пример #2
0
        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);
        }