public void Bulk_Update_Updates_All_Records()
        {
            var factory = new TestDatabaseFactory();
            var context = factory.GenerateDbContext();

            var source = new List <Person>
            {
                new Person {
                    FirstName = "Jane", LastName = "Doe"
                },
                new Person {
                    FirstName = "Joe", LastName = "Doe"
                }
            };

            context.UpdateRange(source);

            context.SaveChanges();

            source.ForEach(p =>
            {
                p.FirstName            = "John";
                context.Entry(p).State = EntityState.Detached;
            });

            var testService = new TestService(context);

            testService.UpdateRange(source);

            context.People.Should().BeEquivalentTo(source);
        }
        public void Bulk_Copy_Creates_Ids_When_Inserting()
        {
            var factory = new TestDatabaseFactory();
            var context = factory.GenerateDbContext();

            var source = new List <Person>
            {
                new Person {
                    FirstName = "Jane", LastName = "2"
                },
                new Person {
                    FirstName = "Joe", LastName = "3"
                }
            };

            using var connection = context.CreateLinqToDbConnection();

            var table = connection.GetTable <Person>();

            table.BulkCopy(source);

            context.People.Should().BeEquivalentTo(source, options => options.Excluding(p => p.Id));
        }