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("col_varchar", sql); // 含まれてはいけない文字列 Assert.DoesNotContain("col_bool", sql); Assert.DoesNotContain("col_int", sql); Assert.DoesNotContain("col_dec", sql); Assert.DoesNotContain("create_by", sql); Assert.DoesNotContain("update_dt", sql); } }
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); } }
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[] { "col_varchar", "update_by", }; // 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("col_varchar", sql); Assert.Contains("update_by", sql); // 含まれてはいけない文字列 Assert.DoesNotContain("col_bool", sql); Assert.DoesNotContain("col_int", sql); Assert.DoesNotContain("col_dec", sql); Assert.DoesNotContain("create_by", sql); Assert.DoesNotContain("create_dt", sql); Assert.DoesNotContain("update_dt", sql); } }
public void Update系_変更列のみ更新_NewRec_PK引数あり2_列引数なし() { using (var db = new DB()) { db.BeginTransaction(); // 更新する値 var rec = new PtTable02 { ColVarchar = "1234567890", }; // PK var pk = new { key01 = "13", key02 = 13, }; var cnt = db.Update(rec, pk); // PKを指定するメソッド _output.WriteLine(db.LastCommand); Assert.Equal(1, cnt); var sql = db.LastSQL; // これは含まれるべき文字列 Assert.Contains("col_varchar", sql); // 含まれてはいけない文字列 Assert.DoesNotContain("col_bool", sql); Assert.DoesNotContain("col_int", sql); Assert.DoesNotContain("col_dec", sql); Assert.DoesNotContain("create_by", sql); Assert.DoesNotContain("update_dt", sql); } }