Dos.ORM Update更新操作

修改单个字段:

 

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")
));

 

转载于:https://www.cnblogs.com/zhibu/articles/6270191.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值