コード例 #1
0
        public async Task Test(DbServer dbServer)
        {
            ContextUtil.DbServer = dbServer;

            using var db = new Issue547DbContext(ContextUtil.GetOptions <Issue547DbContext>(databaseName: $"{nameof(EFCoreBulkTest)}_Issue547"));
            await db.Database.EnsureCreatedAsync();

            var tranches = new List <RootEntity>
            {
                new RootEntity {
                    Id    = 1,
                    Owned = new OwnedType
                    {
                        Field1 = "F1",
                        Child  = new ChildEntity {
                            Id = 1388, Name = "F1C1"
                        }
                    },
                    OwnedInSeparateTable = new OwnedInSeparateTable
                    {
                        Flowers = "Roses"
                    }
                },
                new RootEntity {
                    Id    = 2,
                    Owned = new OwnedType
                    {
                        Field1 = "F2",
                        Child  = new ChildEntity {
                            Id = 1234, Name = "F2C2"
                        }
                    },
                    OwnedInSeparateTable = new OwnedInSeparateTable
                    {
                        Flowers = "Tulips"
                    }
                }
            };

            await db.BulkInsertOrUpdateAsync(tranches, new BulkConfig
            {
                IncludeGraph = true
            });

            foreach (var a in tranches)
            {
                Assert.True(a.Owned.ChildId.HasValue);
            }

            var rootEntities = await db.RootEntities
                               .Include(y => y.OwnedInSeparateTable)
                               .Include(y => y.Owned.Child)
                               .ToListAsync();

            foreach (var re in rootEntities)
            {
                Assert.NotNull(re.Owned);
                Assert.NotEmpty(re.Owned.Field1);

                Assert.NotNull(re.Owned.ChildId);
                Assert.NotNull(re.Owned.Child);
                Assert.NotEmpty(re.Owned.Child.Name);

                Assert.NotNull(re.OwnedInSeparateTable);
                Assert.NotEmpty(re.OwnedInSeparateTable.Flowers);
            }
        }
コード例 #2
0
 public void Dispose()
 {
     using var db = new Issue547DbContext(ContextUtil.GetOptions <Issue547DbContext>(databaseName: $"{nameof(EFCoreBulkTest)}_Issue547"));
     db.Database.EnsureDeleted();
 }