public void TestUpdate() { var connection = new System.Data.SqlClient.SqlConnection(@"Data Source=DESKTOP-9IS2HA6\SQLEXPRESS;Initial Catalog=test;Persist Security Info=True;User ID=sa;Password=1024"); using (IDbContext db = new DbProxyContext(connection, DbContextType.SqlServer)) { var row = 0; db.Open();//自动提交 var entity1 = new Student() { Id = 22, Balance = 50, BirthDay = DateTime.Now, Score = Grade.E, IsDelete = true, Name = "faker", Version = "test", CreateTime = DateTime.Now, }; var entity2 = new Student() { Id = 24, Balance = 50, BirthDay = DateTime.Now, Score = Grade.E, IsDelete = true, Name = "faker", Version = "test", CreateTime = DateTime.Now, }; //1.根据主键字段更新所有列 row = db.From <Student>().Update(entity1); //2.忽略指定列 row = db.From <Student>().Filter(s => s.Version).Update(entity2); //3.根据指定条件更新所有列 var oldVersion = "110"; row = db.From <Student>() .Where(a => a.Id == 25 && a.Version == oldVersion) .Update(entity1); //4.批量修改,不推荐使用, var students = new List <Student>(); students.Add(entity1); students.Add(entity2); row = db.From <Student>().Filter(a => a.CreateTime).Update(students); //5.更新指定字段 row = db.From <Student>() .Update(s => new Student() { Id = 26, //默认通过id更新,可以用where来重置默认 Score = Grade.F, Name = "hihi" }); //6.动态更新字段 var charat = "f"; row = db.From <Student>() .Set(a => a.Balance, 100, 1 > 2) //false .Set(a => a.IsDelete, true) .Set(a => a.Balance, a => a.Balance + 200, 1 < 2) //true .Set(a => a.Name, a => SqlFun.Replace(a.Name, "b", charat)) //true .Where(a => a.Id == 27) .Update(); } }
public void TestUpdate() { var connection = new Npgsql.NpgsqlConnection("Server=127.0.0.1;Port=5432;User Id=postgres;Password=1024;Database=test;"); using (IDbContext db = new DbProxyContext(connection, DbContextType.Postgresql)) { var row = 0; db.Open();//自动提交 var entity1 = new Student() { Id = 22, Balance = 50, BirthDay = DateTime.Now, Score = Grade.E, IsDelete = true, Name = "faker", Version = "test", CreateTime = DateTime.Now, }; var entity2 = new Student() { Id = 24, Balance = 50, BirthDay = DateTime.Now, Score = Grade.E, IsDelete = true, Name = "faker", Version = "test", CreateTime = DateTime.Now, }; //1.根据主键字段更新所有列 row = db.From <Student>().Update(entity1); //2.忽略指定列 row = db.From <Student>().Filter(s => s.Version).Update(entity2); //3.根据指定条件更新所有列 var oldVersion = "110"; row = db.From <Student>() .Where(a => a.Id == 25 && a.Version == oldVersion) .Update(entity1); //4.批量修改,不推荐使用, var students = new List <Student>(); students.Add(entity1); students.Add(entity2); row = db.From <Student>().Filter(a => a.CreateTime).Update(students); //5.更新指定字段 db.From <Student>() .Update(s => new Student() { Id = 26, //默认通过id更新,可以用where来重置默认 Score = Grade.F, Name = "hihi" }); //6.动态更新字段 try { var charat = "f"; db.From <Student>() .Set(a => a.Balance, 100, 1 > 2) //false .Set(a => a.IsDelete, true) .Set(a => a.Balance, a => a.Balance + SqlFun.MONEY(200), 1 < 2) //true .Set(a => a.Name, a => SqlFun.Replace(a.Name, "b", charat)) //true .Where(a => a.Id == 27) .Update(); } catch (Exception e) { throw; } } }
public void TestUpdate() { var sb = new System.Data.SQLite.SQLiteConnectionStringBuilder(); sb.DataSource = "D:\\sqlite.db3"; var connection = new System.Data.SQLite.SQLiteConnection(sb.ConnectionString); using (IDbContext db = new DbProxyContext(connection, DbContextType.Sqlite)) { var row = 0; db.Open();//自动提交 var entity1 = new Student() { Id = 22, Balance = 50, BirthDay = DateTime.Now, Score = Grade.E, IsDelete = true, Name = "faker", Version = "test", CreateTime = DateTime.Now, }; var entity2 = new Student() { Id = 24, Balance = 50, BirthDay = DateTime.Now, Score = Grade.E, IsDelete = true, Name = "faker", Version = "test", CreateTime = DateTime.Now, }; //1.根据主键字段更新所有列 row = db.From <Student>().Update(entity1); //2.忽略指定列 row = db.From <Student>().Filter(s => s.Version).Update(entity2); //3.根据指定条件更新所有列 var oldVersion = "110"; row = db.From <Student>() .Where(a => a.Id == 25 && a.Version == oldVersion) .Update(entity1); //4.批量修改,不推荐使用, var students = new List <Student>(); students.Add(entity1); students.Add(entity2); row = db.From <Student>().Filter(a => a.CreateTime).Update(students); //5.更新指定字段 db.From <Student>() .Update(s => new Student() { Id = 26, //默认通过id更新,可以用where来重置默认 Score = Grade.F, Name = "hihi" }); //6.动态更新字段 var charat = "f"; db.From <Student>() .Set(a => a.Balance, 100, 1 > 2) //false .Set(a => a.IsDelete, true) .Set(a => a.Balance, a => a.Balance + 200, 1 < 2) //true .Set(a => a.Name, a => SqlFun.Replace(a.Name, "b", charat)) //true .Where(a => a.Id == 27) .Update(); } }