public void Can_use_string_enum_or_byte_array_as_key()
        {
            using (var testDatabase = OracleTestStore.CreateInitialized(DatabaseName))
            {
                var sNum1 = new SNum {
                    TheWalrus = "I"
                };
                var sNum2 = new SNum {
                    TheWalrus = "Am"
                };

                var enNum1 = new EnNum {
                    TheWalrus = "Goo goo", Id = ENum.BNum
                };
                var enNum2 = new EnNum {
                    TheWalrus = "g'joob", Id = ENum.CNum
                };

                var bNum1 = new BNum {
                    TheWalrus = "Eggman"
                };
                var bNum2 = new BNum {
                    TheWalrus = "Eggmen"
                };

                var options = Fixture.CreateOptions(testDatabase);
                using (var context = new ENumContext(options))
                {
                    context.Database.EnsureCreated();

                    context.AddRange(sNum1, sNum2, enNum1, enNum2, bNum1, bNum2);

                    context.SaveChanges();
                }

                using (var context = new ENumContext(options))
                {
                    Assert.Equal(sNum1.Id, context.SNums.Single(e => e.TheWalrus == "I").Id);
                    Assert.Equal(sNum2.Id, context.SNums.Single(e => e.TheWalrus == "Am").Id);

                    Assert.Equal(enNum1.Id, context.EnNums.Single(e => e.TheWalrus == "Goo goo").Id);
                    Assert.Equal(enNum2.Id, context.EnNums.Single(e => e.TheWalrus == "g'joob").Id);

                    Assert.Equal(bNum1.Id, context.BNums.Single(e => e.TheWalrus == "Eggman").Id);
                    Assert.Equal(bNum2.Id, context.BNums.Single(e => e.TheWalrus == "Eggmen").Id);
                }
            }
        }
Exemplo n.º 2
0
        public void Can_use_string_enum_or_byte_array_as_key()
        {
            var sNum1 = new SNum {
                TheWalrus = "I"
            };
            var sNum2 = new SNum {
                TheWalrus = "Am"
            };

            var enNum1 = new EnNum {
                TheWalrus = "Goo goo", Id = ENum.BNum
            };
            var enNum2 = new EnNum {
                TheWalrus = "g'joob", Id = ENum.CNum
            };

            var bNum1 = new BNum {
                TheWalrus = "Eggman"
            };
            var bNum2 = new BNum {
                TheWalrus = "Eggmen"
            };

            using (var context = new ENumContext())
            {
                context.Database.EnsureClean();

                context.AddRange(sNum1, sNum2, enNum1, enNum2, bNum1, bNum2);

                context.SaveChanges();
            }

            using (var context = new ENumContext())
            {
                Assert.Equal(sNum1.Id, context.SNums.Single(e => e.TheWalrus == "I").Id);
                Assert.Equal(sNum2.Id, context.SNums.Single(e => e.TheWalrus == "Am").Id);

                Assert.Equal(enNum1.Id, context.EnNums.Single(e => e.TheWalrus == "Goo goo").Id);
                Assert.Equal(enNum2.Id, context.EnNums.Single(e => e.TheWalrus == "g'joob").Id);

                Assert.Equal(bNum1.Id, context.BNums.Single(e => e.TheWalrus == "Eggman").Id);
                Assert.Equal(bNum2.Id, context.BNums.Single(e => e.TheWalrus == "Eggmen").Id);
            }
        }