public void EntitiesOfSameTypeMatchingExistingEntitiesShouldBeSelected() { using (var db = new NumberContext()) { var now = DateTime.Now; var numbers = GenerateNumbers(1, 200, now).ToArray(); db.BulkInsertAll(new BulkInsertRequest <Number> { Entities = numbers, Recursive = true }); numbers = GenerateNumbers(50, 100, now).ToArray(); var existingNumbers = db.BulkSelectExisting <Number, Number>(new BulkSelectRequest <Number> { Items = numbers, KeyPropertyMappings = new[] { new KeyPropertyMapping { ItemPropertyName = "Value", EntityPropertyName = "Value" }, } }); for (int i = 0; i < 100; i++) { Assert.AreSame(numbers[i], existingNumbers[i]); } } }
public void ItemsMatchingExistingEntitiesShouldBeSelected() { using (var db = new NumberContext()) { var now = DateTime.Now; var parities = new[] { new Parity { Name = "Even", UpdatedAt = now, UpdatedBy = "Måns" }, new Parity { Name = "Odd", UpdatedAt = now, UpdatedBy = "Måns" }, }; var numbers = GenerateNumbers(1, 200, parities[0], parities[1], now).ToArray(); db.BulkInsertAll(new BulkInsertRequest <Number> { Entities = numbers, Recursive = true }); var nums = GenerateNumbers(50, 100, parities[0], parities[1], now) .Select(n => new Num { Val = n.Value }) .ToList(); var existingNumbers = db.BulkSelectExisting <Num, Number>(new BulkSelectRequest <Num> { Items = nums, KeyPropertyMappings = new[] { new KeyPropertyMapping { ItemPropertyName = "Val", EntityPropertyName = "Value" }, } }); for (int i = 0; i < 100; i++) { Assert.AreSame(nums[i], existingNumbers[i]); } } }
public void EntitiesOfDifferentTypeMatchingExistingEntitiesShouldBeSelected() { using (var db = new NumberContext()) { var now = DateTime.Now; // Save 200 numbers (1 to 200) to the database. var numbers = GenerateNumbers(1, 200, now).ToArray(); db.BulkInsertAll(new BulkInsertRequest <Number> { Entities = numbers, Recursive = true }); // Create a list of 100 numbers with values 151 to 250 var nums = GenerateNumbers(151, 100, now) .Select(n => new Num { Val = n.Value }) .ToList(); // Numbers 151 to 200 out of 151 to 250 should be selected. var existingNumbers = db.BulkSelectExisting <Num, Number>(new BulkSelectRequest <Num> { Items = nums, KeyPropertyMappings = new[] { new KeyPropertyMapping { ItemPropertyName = "Val", EntityPropertyName = "Value" }, } }).ToArray(); Assert.AreEqual(50, existingNumbers.Length); for (int i = 0; i < 50; i++) { Assert.AreEqual(nums[i], existingNumbers[i]); } } }