private static void Assert(ParentEntity parentEntity, bool useGraphDiff) { using (var context = new SimpleContext()) { var persistedParentEntity = context.ParentEntities.Find(parentEntity.Id); context.Entry(persistedParentEntity) .Collection(x => x.ChildEntities).Load(); context.Entry(persistedParentEntity) .Collection(x => x.ChildReferencingChildEntities).Load(); NUnit.Framework.Assert.That(persistedParentEntity.Id, Is.EqualTo(parentEntity.Id)); NUnit.Framework.Assert.That(persistedParentEntity.Name, Is.EqualTo(parentEntity.Name)); NUnit.Framework.Assert.That(persistedParentEntity.ChildEntities.Count, (useGraphDiff) ? Is.EqualTo(parentEntity.ChildEntities.Count) : Is.EqualTo(parentEntity.ChildEntities.Count(x => x.Id != default(long)))); NUnit.Framework.Assert.That(persistedParentEntity.ChildReferencingChildEntities.Count, (useGraphDiff) ? Is.EqualTo(parentEntity.ChildReferencingChildEntities.Count) : Is.EqualTo(parentEntity.ChildReferencingChildEntities.Count(x => x.Id != default(long)))); // where not using graphdiff - compare that the existing entities are the same var zippedChildren = persistedParentEntity.ChildEntities.Zip( (useGraphDiff) ? parentEntity.ChildEntities : parentEntity.ChildEntities.Where(x => x.Id != default(long)), (persisted, entity) => new { Persisted = persisted, Entity = entity }); foreach (var persistedAndEntity in zippedChildren) { NUnit.Framework.Assert.That(persistedAndEntity.Persisted.Name, Is.EqualTo(persistedAndEntity.Entity.Name)); NUnit.Framework.Assert.That(persistedAndEntity.Persisted.ParentEntityId, Is.EqualTo(persistedAndEntity.Entity.ParentEntityId)); } var zippedChildReferencingChildren = persistedParentEntity.ChildReferencingChildEntities.Zip( parentEntity.ChildReferencingChildEntities.Where(x => x.Id != default(long)), (persisted, entity) => new { Persisted = persisted, Entity = entity }); foreach (var persistedAndEntity in zippedChildReferencingChildren) { NUnit.Framework.Assert.That(persistedAndEntity.Persisted.Name, Is.EqualTo(persistedAndEntity.Entity.Name)); NUnit.Framework.Assert.That(persistedAndEntity.Persisted.ParentEntityId, Is.EqualTo(persistedAndEntity.Entity.ParentEntityId)); NUnit.Framework.Assert.That(persistedAndEntity.Persisted.ChildEntityId, Is.EqualTo( persistedAndEntity.Entity.ChildEntityId == default(long) ? 3 : persistedAndEntity.Entity.ChildEntityId)); // should be added by graphdiff } } }
public virtual void Update(TEntity entity, bool commit = true, bool setUpdatedAt = true) { TEntity oldEntity = Set.AsNoTracking().SingleOrDefault(s => s.Id == entity.Id); entity.CreatedAt = oldEntity.CreatedAt; if (setUpdatedAt) { entity.UpdatedAt = DateTimeOffset.Now; } _context.Entry(entity).State = EntityState.Modified; if (commit) { this.Commit(); } }
public void Update(TEntity entity, bool commit = true) { _context.Entry(entity).State = EntityState.Modified; if (commit) { this.Commit(); } }
public ActionResult Edit([Bind(Include = "Id,GroupName")] Group group) { if (ModelState.IsValid) { db.Entry(group).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } return(View(group)); }