oracle更新数据方法,Oracle-更新数据

更新数据

Chloe 支持两种数据更新方式。

1.实体更新:

User user = new User();

user.Id = 1;

user.Name = "lu";

user.Age = 28;

user.Gender = Gender.Man;

user.OpTime = DateTime.Now;

/* 更新所有映射的字段 */

context.Update(user);

/*

* String :P_0 = 'lu';

Int32 :P_1 = 1;

Int32 :P_2 = 28;

Nullable :P_3 = NULL;

DateTime :P_4 = '2016/9/5 9:20:07';

UPDATE "USERS" SET "NAME"=:P_0,"GENDER"=:P_1,"AGE"=:P_2,"CITYID"=:P_3,"OPTIME"=:P_4

WHERE "USERS"."ID" = :P_1

*/

由于 user 对象未被上下文跟踪,这会使所有的映射列都会被更新。Chloe 也支持类似 EF 一样只更新被修改过的属性。

/*

* 支持只更新属性值已变的属性

*/

/* 在修改实体属性前让上下文跟踪实体 */

context.TrackEntity(user);

/* 然后再修改实体属性 */

user.Name = user.Name + "1";

/* 然后调用 Update 方法,这时只会更新被修改过的属性 */

context.Update(user);

/*

* String :P_0 = 'lu1';

Int32 :P_1 = 1;

UPDATE "USERS" SET "NAME"=:P_0 WHERE "USERS"."ID" = :P_1

*/

2.lambda 方式更新:

该方式解决的问题是:1.指定列更新;2.批量更新;3.支持类似 Age=Age + 100 这样更新字段。用法如下:

/* tip:必须在 lambda 里写 new User() */

context.Update(a => a.Age > 18, a => new User()

{

Name = a.Name,

Age = a.Age + 100,

Gender = Gender.Man,

OpTime = DateTime.Now

});

/*

* UPDATE "USERS" SET "NAME"="USERS"."NAME","AGE"=("USERS"."AGE" + 100),"GENDER"=1,"OPTIME"=SYSTIMESTAMP

WHERE "USERS"."AGE" > 18

*/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值