Exemple #1
0
        public void Update系_変更列のみ更新_NewRec_PK引数なし2_列引数なし()
        {
            using (var db = new DB())
            {
                db.BeginTransaction();

                // レコード内にPK値も持つ
                var rec = new PtTable02
                {
                    Key01      = "13",
                    Key02      = 13,
                    ColVarchar = "1234567890",
                };

                var cnt = db.Update(rec);       // PKはレコード内にあるパターン
                _output.WriteLine(db.LastCommand);

                Assert.Equal(1, cnt);

                var sql = db.LastSQL;

                // これは含まれるべき文字列
                Assert.Contains("ColVarchar", sql);

                // 含まれてはいけない文字列
                Assert.DoesNotContain("ColBool", sql);
                Assert.DoesNotContain("ColInt", sql);
                Assert.DoesNotContain("ColDec", sql);
                Assert.DoesNotContain("CreateBy", sql);
                Assert.DoesNotContain("UpdateDt", sql);
            }
        }
Exemple #2
0
        public void Insert系_1件挿入Entity()
        {
            using (var db = new DB())
            {
                db.BeginTransaction();

                var rec = new PtTable02
                {
                    Key01      = "92",
                    Key02      = 92,
                    ColBool    = true,
                    ColInt     = 123,
                    ColDec     = 987654.32m,
                    ColVarchar = "Insert'テスト'その2",
                    CreateBy   = "pt_test001",
                    CreateDt   = DateTime.Parse("2018/12/18 18:00:00"),
                    UpdateBy   = "pt_test001",
                    UpdateDt   = DateTime.Parse("2018/12/18 18:00:00"),
                };
                var result = db.Insert(rec);
                _output.WriteLine(db.LastSQL);
                _output.WriteLine(result.ToString());

                Assert.Equal("-1", result.ToString());      // AutoIncrementでない場合は-1が返る

                var rec2 = db.SingleById <PtTable02>(new { Key01 = "92", Key02 = 92 });
                Assert.True(rec2.ColBool);
                Assert.Equal(123, rec2.ColInt.Value);
                Assert.Equal(987654.32m, rec2.ColDec.Value);
                Assert.Equal("Insert'テスト'その2", rec2.ColVarchar);
                Assert.Equal("pt_test001", rec2.CreateBy);
                Assert.Equal(DateTime.Parse("2018/12/18 18:00:00"), rec2.CreateDt);
            }
        }
Exemple #3
0
        public void Update系_変更列のみ更新_NewRec_PK引数あり_列引数あり()
        {
            using (var db = new DB())
            {
                db.BeginTransaction();

                // 更新する値
                var rec = new PtTable02
                {
                    ColVarchar = "1234567890",
                    CreateBy   = "hogehoge",
                    CreateDt   = DateTime.Now,
                    UpdateBy   = "hogehoge",
                    UpdateDt   = DateTime.Now,
                };
                // 更新する列だけを別に指定
                var updatingCols = new string[]
                {
                    "ColVarchar",
                    "UpdateBy",
                };

                // PK
                var pk = new
                {
                    Key01 = "13",
                    Key02 = 13,
                };

                var cnt = db.Update(rec, pk, updatingCols);   // PKと更新列を指定するメソッド
                _output.WriteLine(db.LastCommand);

                Assert.Equal(1, cnt);

                var sql = db.LastSQL;

                // これは含まれるべき文字列
                Assert.Contains("ColVarchar", sql);
                Assert.Contains("UpdateBy", sql);

                // 含まれてはいけない文字列
                Assert.DoesNotContain("ColBool", sql);
                Assert.DoesNotContain("ColInt", sql);
                Assert.DoesNotContain("ColDec", sql);
                Assert.DoesNotContain("CreateBy", sql);
                Assert.DoesNotContain("UpdateDt", sql);
            }
        }