Beispiel #1
0
        internal void AddResource(object resource)
        {
            IList entitySetInstance = EntitySetDictionary.GetEntitySet(resource.GetType());

            foreach (object entity in entitySetInstance)
            {
                // check if there is not another instance with the same id
                if (EqualKeys(resource, entity))
                {
                    throw new DataServiceException(500, "An entity with the given key already exists");
                }
            }
            entitySetInstance.Add(resource);
        }
Beispiel #2
0
        } // SetReference

        public virtual void SaveChanges()
        {
            foreach (KeyValuePair <object, EntityState> pendingChange in this.PendingChanges)
            {
                switch (pendingChange.Value)
                {
                case EntityState.Added:
                    AddResource(pendingChange.Key);
                    break;

                case EntityState.Deleted:
                    // find the entity set for the object
                    IList entitySetInstance = EntitySetDictionary.GetEntitySet(pendingChange.Key.GetType());
                    DeleteEntity(entitySetInstance, pendingChange.Key, true /*throwIfNotPresent*/);
                    break;

                default:
                    throw new Exception("Unsupported State");
                }
            }

            this.PendingChanges.Clear();
        } // SaveChanges