public void Update_IDefaultEntity_Merge() { var tableName = "table_x"; var firstEntity = new EntityA() { Data = new byte[512], NullableDateTime = DateTime.Today, NullableInteger = int.MaxValue, String = new string('S', 120), Varchar = new string('S', 50) }; provider.CreateTable <EntityA>(tableName); var id = provider.Insert(tableName, firstEntity); var secondEntity = firstEntity.MemberwiseClone() as EntityA; Assert.IsNotNull(secondEntity); secondEntity.Data = null; secondEntity.DateTime = DateTime.Today; secondEntity.DateTimeOffset = new DateTimeOffset(DateTime.Today); secondEntity.NullableDateTime = null; secondEntity.NullableInteger = null; secondEntity.String = null; var affected = provider.Update(tableName, secondEntity, true); Assert.AreEqual(1, affected); var actual = provider.Query <EntityA>($"SELECT * FROM {provider.ResolveTableName(tableName)} WHERE \"Id\" = @0", firstEntity.Id) .FirstOrDefault(); Assert.AreEqual(firstEntity.Data, actual.Data); Assert.IsTrue(secondEntity.DateTime.Equals(actual.DateTime)); Assert.IsTrue(secondEntity.DateTimeOffset.Equals(actual.DateTimeOffset)); Assert.AreEqual(firstEntity.NullableDateTime, actual.NullableDateTime); Assert.AreEqual(firstEntity.NullableInteger, actual.NullableInteger); Assert.AreEqual(firstEntity.String, actual.String); Assert.AreEqual(firstEntity.Varchar, actual.Varchar); }
public void Update_IDefaultEntity_NotExisting() { var tableName = "table_x"; var firstEntity = new EntityA() { Data = new byte[512], NullableDateTime = DateTime.Today, NullableInteger = int.MaxValue, String = new string('S', 120), Varchar = new string('S', 50) }; provider.CreateTable <EntityA>(tableName); var id = provider.Insert(tableName, firstEntity); provider.Execute($"DELETE FROM {provider.ResolveTableName(tableName)} WHERE \"Id\" = @0", id); var secondEntity = firstEntity.MemberwiseClone() as EntityA; var affected = provider.Update(tableName, secondEntity, true); Assert.AreEqual(0, affected); }