Ejemplo n.º 1
0
        public void ExistingEntitiesShouldBeSelectedOnSingleKey()
        {
            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.BulkSelect <Num, Number>(new BulkSelectRequest <Num>
                {
                    Items = nums,
                    KeyPropertyMappings = new[]
                    {
                        new KeyPropertyMapping
                        {
                            ItemPropertyName   = "Val",
                            EntityPropertyName = "Value"
                        },
                    }
                });

                var expectedNumbers = numbers.Skip(49).Take(100).ToArray();
                for (int i = 0; i < 100; i++)
                {
                    Assert.AreEqual(expectedNumbers[i].Id, existingNumbers[i].Id);
                    Assert.AreEqual(expectedNumbers[i].ParityId, existingNumbers[i].ParityId);
                    Assert.AreEqual(expectedNumbers[i].UpdatedAt.ToString(CultureInfo.InvariantCulture), existingNumbers[i].UpdatedAt.ToString(CultureInfo.InvariantCulture));
                    Assert.AreEqual(expectedNumbers[i].UpdatedBy, existingNumbers[i].UpdatedBy);
                    Assert.AreEqual(expectedNumbers[i].Value, existingNumbers[i].Value);
                }
            }
        }
        public void ExistingEntitiesShouldBeSelectedOnSingleKey()
        {
            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,
                    EnableRecursiveInsert = EnableRecursiveInsert.Yes
                });

                // 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 from the database should be selected.
                var existingNumbers = db.BulkSelect <Num, Number>(new BulkSelectRequest <Num>
                {
                    Items = nums.ToArray(),
                    KeyPropertyMappings = new[]
                    {
                        new KeyPropertyMapping
                        {
                            ItemPropertyName   = "Val",
                            EntityPropertyName = "Value"
                        },
                    }
                }).ToArray();

                Assert.AreEqual(existingNumbers.Length, 50);
                var expectedNumbers = numbers.Skip(150).Take(50).ToArray();

                for (int i = 0; i < 50; i++)
                {
                    Assert.AreEqual(expectedNumbers[i].Id, existingNumbers[i].Id);
                    Assert.AreEqual(expectedNumbers[i].ParityId, existingNumbers[i].ParityId);
                    Assert.AreEqual(expectedNumbers[i].UpdatedAt.ToString(CultureInfo.InvariantCulture), existingNumbers[i].UpdatedAt.ToString(CultureInfo.InvariantCulture));
                    Assert.AreEqual(expectedNumbers[i].UpdatedBy, existingNumbers[i].UpdatedBy);
                    Assert.AreEqual(expectedNumbers[i].Value, existingNumbers[i].Value);
                }
            }
        }
Ejemplo n.º 3
0
        public void ExistingEntitiesShouldBeSelectedOnSingleKey()
        {
            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
                });
                foreach (var number in numbers)
                {
                    Console.WriteLine($"{number.Id};{number.Value}");
                }

                var nums = GenerateNumbers(50, 100, now)
                           .Select(n => new Num {
                    Val = n.Value
                })
                           .ToList();
                var existingNumbers = db.BulkSelect <Num, Number>(new BulkSelectRequest <Num>
                {
                    Items = nums,
                    KeyPropertyMappings = new[]
                    {
                        new KeyPropertyMapping
                        {
                            ItemPropertyName   = "Val",
                            EntityPropertyName = "Value"
                        },
                    }
                });

                //var expectedNumbers = numbers.Skip(49).Take(100).ToArray();
                //for (int i = 0; i < 100; i++)
                //{
                //    Assert.AreEqual(expectedNumbers[i].Id, existingNumbers[i].Id);
                //    Assert.AreEqual(expectedNumbers[i].ParityId, existingNumbers[i].ParityId);
                //    Assert.AreEqual(expectedNumbers[i].UpdatedAt.ToString(CultureInfo.InvariantCulture), existingNumbers[i].UpdatedAt.ToString(CultureInfo.InvariantCulture));
                //    Assert.AreEqual(expectedNumbers[i].UpdatedBy, existingNumbers[i].UpdatedBy);
                //    Assert.AreEqual(expectedNumbers[i].Value, existingNumbers[i].Value);
                //}
            }
        }