Ejemplo n.º 1
0
        public void TestGeneratedCode()
        {
            var db = new DbHelperFactory(ConnectionString.FormatInvariantCulture(DbName));
            var da = new CpsDbHelperDataAccess(ConnectionString.FormatInvariantCulture(DbName));
            Task.WaitAll(db.BeginNonQuery("delete from dbo.table2").ExecuteSqlStringAsync());
            db.BeginNonQuery("delete from dbo.Table1")
                .ExecuteSqlString();
            var t1 = new TableAnother()
            {
                Id = 10,
                Name1 = 10,
                Name = "t1r1",
                Name13 = "t1r1"
            };
            da.BeginTransaction();
            da.SaveTableAnotherByIdAndName1(t1);
            var t1load = da.GetTableAnotherByIdAndName1(t1.Id, t1.Name1);
            Assert.AreEqual(t1load.Name13, t1.Name13);
            var t2 = new Table2()
            {
                Descript = 1,
                Name = "t2r1"
            };
            var id = da.SaveTable2ById(t2);
            var t2load = da.GetTable2ById(id.Value);
            Assert.AreEqual(t2.Name, t2load.Name);
            da.EndTransaction(false);
            t1load = da.GetTableAnotherByIdAndName1(t1.Id,  t1.Name1);
            Assert.IsNull(t1load);
            t1.Name13 = "t1r1m";
            da.SaveTableAnotherByIdAndName1(t1);
            t1load = da.GetTableAnotherByIdAndName1(t1.Id, t1.Name1);
            Assert.AreEqual(t1load.Name13, t1.Name13);
            da.BeginTransaction();
            t1.Name13 = "t1r1m2";
            da.SaveTableAnotherByIdAndName1(t1);
            t1load = da.GetTableAnotherByIdAndName1(t1.Id, t1.Name1);
            da.EndTransaction();
            Assert.AreEqual(t1load.Name13, t1.Name13);
            t1load = da.GetTableAnotherByIdAndName1(11, 11);
            Assert.IsNull(t1load);
            id = da.SaveTable2ById(t2);
            t2load = da.GetTable2ByNameAndDescript(t2.Name, t2.Descript);
            Assert.AreEqual(t2load.Id, id.Value);
            var task = db.BeginReader("select * from table2")
                .AutoMapResult<Table2>()
                .ExecuteSqlStringAsync();
            task.Wait();
            var ret = task.Result
                .GetResultCollection<Table2>();

            Assert.AreEqual(1, ret.Count);
            Assert.AreEqual(ret.First().Id, id.Value);

            t2 = new Table2()
            {
                ForId = t1.Id,
                ForName = t1.Name1,
                Name = "hehe"
            };
            id = da.SaveTable2ByForIdAndForName(t2);
            var retT2 = da.GetTable2sByForIdAndForName(t2.ForId, t2.ForName);
            Assert.AreEqual(1,retT2.Count);
            Assert.AreEqual(t2.Name, retT2.First().Name);
            t1load = da.GetTableAnotherByIdAndName1(t2.ForId.Value, t2.ForName.Value, true);
            Assert.AreEqual(1, t1load.Table2s.Count);
            Assert.AreEqual(t2.Name, t1load.Table2s.First().Name);
            t1load = da.GetTableAnotherByIdAndName1(t2.ForId.Value, t2.ForName.Value);
            Assert.AreEqual(null, t1load.Table2s);
        }
 public void SaveTableAnotherByIdAndName1(TableAnother tableAnother)
 {
     const string query = "IF EXISTS(SELECT 1 FROM [dbo].[Table1] WHERE [Id] = @id AND [Name1] = @name1) UPDATE [dbo].[Table1] SET [Id] = @id, [Name] = @name, [Name1] = @name1, [Name2] = @name2, [Name3] = @name3, [Name4] = @name4, [Name5] = @name5, [Name6] = @name6, [Name7] = @name7, [Name8] = @name8, [Name9] = @name9, [Name0] = @name0, [Name11] = @name11, [Name12] = @name12, [Name13] = @name13, [Name14] = @name14, [Name15] = @name15, [Name16] = @name16, [Name17] = @name17, [Name18] = @name18, [Name20] = @name20, [Name21] = @name21, [Name22] = @name22, [Name23] = @name23, [Name24] = @name24, [Name25] = @name25, [Name26] = @name26, [Name27] = @name27, [Name28] = @name28  WHERE [Id] = @id AND [Name1] = @name1 ELSE INSERT INTO [dbo].[Table1] ([Id], [Name], [Name1], [Name2], [Name3], [Name4], [Name5], [Name6], [Name7], [Name8], [Name9], [Name0], [Name11], [Name12], [Name13], [Name14], [Name15], [Name16], [Name17], [Name18], [Name20], [Name21], [Name22], [Name23], [Name24], [Name25], [Name26], [Name27], [Name28]) VALUES(@id, @name, @name1, @name2, @name3, @name4, @name5, @name6, @name7, @name8, @name9, @name0, @name11, @name12, @name13, @name14, @name15, @name16, @name17, @name18, @name20, @name21, @name22, @name23, @name24, @name25, @name26, @name27, @name28)";
     var ret = _db.BeginNonQuery(query)
                  .AddIntInParam("Id",  tableAnother.Id, true)
                  .AddCharInParam("Name",  tableAnother.Name, true)
                  .AddBigIntInParam("Name1",  tableAnother.Name1, true)
                  .AddBinaryInParam("Name2",  tableAnother.Name2, true)
                  .AddBitInParam("Name3",  tableAnother.Name3, true)
                  .AddCharInParam("Name4",  tableAnother.Name4, true)
                  .AddDateTimeInParam("Name5",  tableAnother.Name5, true)
                  .AddDecimalInParam("Name6",  tableAnother.Name6, true)
                  .AddFloatInParam("Name7",  tableAnother.Name7, true)
                  .AddImageInParam("Name8",  tableAnother.Name8, true)
                  .AddIntInParam("Name9",  tableAnother.Name9, true)
                  .AddDecimalInParam("Name0",  tableAnother.Name0, true)
                  .AddNcharInParam("Name11",  tableAnother.Name11, true)
                  .AddNtextInParam("Name12",  tableAnother.Name12, true)
                  .AddNvarcharInParam("Name13",  tableAnother.Name13, true)
                  .AddDecimalInParam("Name14",  tableAnother.Name14, true)
                  .AddDateTimeInParam("Name15",  tableAnother.Name15, true)
                  .AddSmallIntInParam("Name16",  tableAnother.Name16, true)
                  .AddDecimalInParam("Name17",  tableAnother.Name17, true)
                  .AddTextInParam("Name18",  tableAnother.Name18, true)
                  .AddTinyIntInParam("Name20",  tableAnother.Name20, true)
                  .AddGuidInParam("Name21",  tableAnother.Name21, true)
                  .AddBinaryInParam("Name22",  tableAnother.Name22, true)
                  .AddVarcharInParam("Name23",  tableAnother.Name23, true)
                  .AddXmlInParam("Name24",  tableAnother.Name24, true)
                  .AddDateInParam("Name25",  tableAnother.Name25, true)
                  .AddTimeInParam("Name26",  tableAnother.Name26, true)
                  .AddDateTimeOffsetInParam("Name27",  tableAnother.Name27, true)
                  .AddDateTime2InParam("Name28",  tableAnother.Name28, true)
                  .ExecuteSqlString();
 }
Ejemplo n.º 3
0
        public void TestGeneratedCode()
        {
            var db = new DbHelperFactory(ConnectionString.FormatInvariantCulture(DbName));
            var da = new CpsDbHelperDataAccess(ConnectionString.FormatInvariantCulture(DbName));
            Task.WaitAll(db.BeginNonQuery("delete from dbo.table2").ExecuteSqlStringAsync());
            db.BeginNonQuery("delete from dbo.Table1")
                .ExecuteSqlString();
            var t1 = new TableAnother()
            {
                Id = 10,
                Name1 = 10,
                Name = "t1r1",
                Name13 = "t1r1"
            };
            da.BeginTransaction();
            da.SaveTableAnotherByIdAndName1(t1);
            var t1load = da.GetTableAnotherByIdAndName1(t1.Id, t1.Name1);
            Assert.AreEqual(t1load.Name13, t1.Name13);
            var t2 = new Table2()
            {
                Descript = 1,
                Name = "t2r1"
            };
            var id = da.SaveTable2ById(t2);
            var t2load = da.GetTable2ById(id.Value);
            Assert.AreEqual(t2.Name, t2load.Name);
            da.EndTransaction(false);
            t1load = da.GetTableAnotherByIdAndName1(t1.Id,  t1.Name1);
            Assert.IsNull(t1load);
            t1.Name13 = "t1r1m";
            da.SaveTableAnotherByIdAndName1(t1);
            t1load = da.GetTableAnotherByIdAndName1(t1.Id, t1.Name1);
            Assert.AreEqual(t1load.Name13, t1.Name13);
            da.BeginTransaction();
            t1.Name13 = "t1r1m2";
            da.SaveTableAnotherByIdAndName1(t1);
            t1load = da.GetTableAnotherByIdAndName1(t1.Id, t1.Name1);
            da.EndTransaction();
            Assert.AreEqual(t1load.Name13, t1.Name13);
            t1load = da.GetTableAnotherByIdAndName1(11, 11);
            Assert.IsNull(t1load);
            id = da.SaveTable2ById(t2);
            t2load = da.GetTable2ByNameAndDescript(t2.Name, t2.Descript);
            Assert.AreEqual(t2load.Id, id.Value);
            var task = db.BeginReader("select * from table2")
                .AutoMapResult<Table2>()
                .ExecuteSqlStringAsync();
            task.Wait();
            var ret = task.Result
                .GetResultCollection<Table2>();

            Assert.AreEqual(1, ret.Count);
            Assert.AreEqual(ret.First().Id, id.Value);

            t2 = new Table2()
            {
                ForId = t1.Id,
                ForName = t1.Name1,
                Name = "hehe"
            };
            id = da.SaveTable2ByForIdAndForName(t2);
            var retT2 = da.GetTable2sByForIdAndForName(t2.ForId, t2.ForName);
            Assert.AreEqual(1,retT2.Count);
            Assert.AreEqual(t2.Name, retT2.First().Name);
            t1load = da.GetTableAnotherByIdAndName1(t2.ForId.Value, t2.ForName.Value, true);
            Assert.AreEqual(1, t1load.Table2s.Count);
            Assert.AreEqual(t2.Name, t1load.Table2s.First().Name);
            t1load = da.GetTableAnotherByIdAndName1(t2.ForId.Value, t2.ForName.Value);
            Assert.AreEqual(null, t1load.Table2s);
        }