public void Issue1007OnOldAPIv1(string context) { using (var db = new TestDataConnection(context)) using (db.BeginTransaction()) { var table = db.GetTable <TestMappingWithIdentity>(); table.Delete(); db.Insert(new TestMappingWithIdentity()); var lastId = table.Select(_ => _.Id).Max(); var source = new[] { new TestMappingWithIdentity() { Id = lastId, Field = 10 } }; var rows = db.Merge(source); var result = table.OrderBy(_ => _.Id).ToList(); AssertRowCount(1, rows, context); Assert.AreEqual(1, result.Count); var newRecord = new TestMapping1(); Assert.AreEqual(lastId, result[0].Id); Assert.AreEqual(10, result[0].Field); } }
private void AssertRow(TestMapping1 expected, TestMapping1 actual, int?exprected3, int?exprected4) { Assert.AreEqual(expected.Id, actual.Id); Assert.AreEqual(expected.Field1, actual.Field1); Assert.AreEqual(expected.Field2, actual.Field2); Assert.AreEqual(exprected3, actual.Field3); Assert.AreEqual(exprected4, actual.Field4); Assert.IsNull(actual.Field5); }
private void AssertDynamicRow(TestMapping1 expected, DynamicColumns1 actual, int?exprected3, int?exprected4) { Assert.AreEqual(expected.Id, actual.ExtendedProperties["Id"]); Assert.AreEqual(expected.Field1, actual.ExtendedProperties["Field1"]); Assert.AreEqual(expected.Field2, actual.ExtendedProperties["Field2"]); Assert.AreEqual(exprected3, actual.ExtendedProperties["Field3"]); Assert.AreEqual(exprected4, actual.ExtendedProperties["Field4"]); Assert.IsNull(actual.ExtendedProperties["Field5"]); }
public void Issue1007OnOldAPIv2([IdentityInsertMergeDataContextSource( ProviderName.Sybase, ProviderName.SybaseManaged)] string context) { using (var db = new TestDataConnection(context)) using (db.BeginTransaction()) { db.Doctor.Delete(); db.Patient.Delete(); var table = db.GetTable <Person1007>(); table.Delete(); db.Insert(new Person1007() { FirstName = "first name", LastName = "last name", Gender = Gender.Female }); var lastId = table.Select(_ => _.ID).Max(); var source = new[] { new Person1007() { FirstName = "first name", LastName = "updated", Gender = Gender.Male, ID = 10 } }; var rows = db.Merge(source); var result = table.OrderBy(_ => _.ID).ToList(); AssertRowCount(1, rows, context); Assert.AreEqual(1, result.Count); var newRecord = new TestMapping1(); Assert.AreEqual(lastId, result[0].ID); Assert.AreEqual("first name", result[0].FirstName); Assert.AreEqual("updated", result[0].LastName); Assert.AreEqual(Gender.Male, result[0].Gender); } }
public void ImplicitInsertIdentityWithSkipOnInsert( [IdentityInsertMergeDataContextSource] string context) { using (var db = GetDataContext(context)) { var table = db.GetTable <TestMappingWithIdentity>(); table.Delete(); db.Insert(new TestMappingWithIdentity()); var lastId = table.Select(_ => _.Id).Max(); var source = new[] { new TestMappingWithIdentity() { Field = 22, }, new TestMappingWithIdentity() { Field = 23 } }; var rows = table .Merge() .Using(source) .On((s, t) => s.Field == t.Field) .InsertWhenNotMatched() .Merge(); var result = table.OrderBy(_ => _.Id).ToList(); AssertRowCount(2, rows, context); Assert.AreEqual(3, result.Count); var newRecord = new TestMapping1(); Assert.AreEqual(lastId, result[0].Id); Assert.AreEqual(null, result[0].Field); Assert.AreEqual(lastId + 1, result[1].Id); Assert.AreEqual(22, result[1].Field); Assert.AreEqual(lastId + 2, result[2].Id); Assert.AreEqual(23, result[2].Field); } }
public void Issue1007OnNewAPI(string context) { using (var db = new TestDataConnection(context)) using (db.BeginTransaction()) { var table = db.GetTable <TestMappingWithIdentity>(); table.Delete(); db.Insert(new TestMappingWithIdentity()); var lastId = table.Select(_ => _.Id).Max(); var source = new[] { new TestMappingWithIdentity() { Field = 10 } }; var rows = table .Merge() .Using(source) .On((s, t) => s.Field == null) .InsertWhenNotMatched() .UpdateWhenMatched() .Merge(); var result = table.OrderBy(_ => _.Id).ToList(); AssertRowCount(1, rows, context); Assert.AreEqual(1, result.Count); var newRecord = new TestMapping1(); Assert.AreEqual(lastId, result[0].Id); Assert.AreEqual(10, result[0].Field); } }