修改单个字段:
1 //SQL语句:UPDATE table SET name='ITdos' WHERE id=1 2 //一般只修改单个值的时候推荐这种写法 3 DB.Context.Update<table>(table._.name, "ITdos", table._.id == 1);
根据主键直接修改一条数据:
1 //SQL语句:UPDATE table SET name='ITdos',sex='girl' WHERE id=1 2 var uptModel = new Model.table(); 3 uptModel.name = "ITdos"; 4 uptModel.sex = "girl"; 5 var count = DB.Context.Update<table>(uptModel,d => d.id == 1);
根据取到的实体修改部分字段:
//SQL语句:UPDATE table SET name='ITdos',sex='girl' WHERE id=1 var uptModel = DB.Context.From<table>().Where(d => d.id == 1).First(); if(uptModel == null) { return "不存在要修改的数据"; } uptModel.name = "ITdos"; uptModel.sex = "girl"; //这里没有传入d.id==1是因为该实体是从数据库获取 //uptModel.id已经包含了主键值,ORM内部会自动加上主键条件。 //当然为了放心点,像上面一样把d=>d.id==uptModel.id条件写上也行。 var count = DB.Context.Update<table>(uptModel);
批量修改数据:
var listModel = DB.Context.From<table>().ToList(); foreach(var entity in listModel){ entity.name = "ITdos"; entity.sex = "man"; } //批量修改方法内部是事务操作。 var count = DB.Context.Update<table>(listModel);
修改表所有字段:
//以上写法都是仅仅修改指定字段 //如:model.name="ITdos";model.sex="man";修改了实体中两个属性 //ORM会记住您修改了上面2个字段,所以在生成SQL的时候仅仅是: //UPDATE table SET name='ITdos',sex='girl' WHERE id=1 //如果想修改表中所有字段,请使用.UpdateAll(): var uptModel = DB.Context.From<table>().ToList(); uptModel.name = "ITdos"; uptModel.sex = "girl"; var count = DB.Context.UpdateAll<table>(uptModel,d => d.id == uptModel.id);
子查询条件修改:
//SQL语句:UPDATE table SET sex='man' WHERE id IN // (SELECT id FROM table WHERE name='ITdos') var uptModel = new TestTable(); uptModel.sex = "man"; var count2 = DB.Content.Update<table>(uptModel,table._.id.SubQueryIn( DB.Content.From<table>().Select(d => d.id).Where(d => d.name == "ITdos") ));