Esempio n. 1
0
        public void Test([DataSources] string context)
        {
            ResetPersonIdentity(context);

            MappingSchema.Default.SetConverter <Dictionary <string, string>?, string?>(obj => obj == null ? null : obj.Keys.FirstOrDefault());
            MappingSchema.Default.SetConverter <Dictionary <string, string>?, DataParameter?>(obj => obj == null ? null : new DataParameter {
                Value = obj.Keys.FirstOrDefault(), DataType = DataType.NVarChar
            });
            MappingSchema.Default.SetConverter <string?, Dictionary <string, string>?>(txt => txt == null ? null : new Dictionary <string, string> {
                { txt, txt }
            });

            using var db = GetDataContext(context);
            using var _  = new RestoreBaseTables(db);

            var person = new Person
            {
                FirstName = new Dictionary <string, string> {
                    { "123", "123" }
                },
                LastName   = "456",
                MiddleName = "789",
                Gender     = "M",
            };

            int id;

            id = Convert.ToInt32(db.InsertWithIdentity(person));

            var p1 = db.GetTable <Person>().First(t => t.PersonID == id);
            var p2 = db.GetTable <PurePerson>().First(t => t.PersonID == id);

            Assert.That(p1.FirstName.Keys.First(), Is.EqualTo("123"));
            Assert.That(p2.FirstName, Is.EqualTo("123"));
        }
Esempio n. 2
0
        public void TestEnumString(string context, Action <MappingSchema> initMappingSchema)
        {
            ResetPersonIdentity(context);

            var ms = new MappingSchema();

            ms.SetConverter <Dictionary <string, string>?, string?>(obj => obj == null ? null : obj.Keys.FirstOrDefault());
            ms.SetConverter <Dictionary <string, string>?, DataParameter?>(obj => obj == null ? null : new DataParameter {
                Value = obj.Keys.FirstOrDefault(), DataType = DataType.NVarChar
            });
            ms.SetConverter <string?, Dictionary <string, string>?>(txt => txt == null ? null : new Dictionary <string, string> {
                { txt, txt }
            });

            initMappingSchema(ms);

            using var db = GetDataContext(context, ms);
            using var _  = new RestoreBaseTables(db);

            var person = new Person2()
            {
                FirstName = new Dictionary <string, string> {
                    { "123", "123" }
                },
                LastName   = "456",
                MiddleName = "789",
                Gender     = Gender.M
            };

            int id;

            id = Convert.ToInt32(db.InsertWithIdentity(person));

            var p = db.GetTable <PurePerson>().First(t => t.PersonID == id);

            Assert.AreEqual(Gender.M.ToString(), p.Gender);
            Assert.AreEqual("123", p.FirstName);
        }
Esempio n. 3
0
        public void UseParametersTest([DataSources(false)] string context)
        {
            using var db = new TestDataConnection(context);
            using var _  = new RestoreBaseTables(db);
            using var tr = db.BeginTransaction();
            var options = new BulkCopyOptions()
            {
                UseParameters = true, MaxBatchSize = 50, BulkCopyType = BulkCopyType.MultipleRows
            };
            var start = 111001;

            var rowsToInsert = Enumerable.Range(start, 149)
                               .Select(r => new Parent()
            {
                ParentID = r, Value1 = r - start
            }).ToList();

            db.Parent.BulkCopy(options, rowsToInsert);

            Assert.AreEqual(rowsToInsert.Count,
                            db.Parent.Where(r =>
                                            r.ParentID >= rowsToInsert[0].ParentID && r.ParentID <= rowsToInsert.Last().ParentID).Count());
        }