EF在更新实体 DbContext.Entry(entity).State = EntityState.Modified

1 篇文章 0 订阅

DbSet.Attach(entity) vs DbContext.Entry(entity).State = EntityState.Modified

国外网友的解释:

我自己的亲测:

 

--将一个entity标记为System.Data.Entity.EntityState.Modified更新时会更新所有的列(而不仅是修改了需要的列)
exec sp_executesql N'UPDATE [dbo].[SalerInfoChangePlan]
SET [username] = @0, [time] = @1, [salername] = @2, [reception_state] = @3, [config_mode] = @4, [worktime_start] = @5, [worktime_end] = @6, [reception_daily] = @7, [status] = @8, 
[creator] = @9, [created] = @10, [updater] = @11, [updated] = @12, [audit_log] = @13, [weixin_no] = @14, [auditor] = @15, [auditd] = @16
WHERE ([id] = @17)
',N'@0 nvarchar(50),@1 datetime2(7),@2 nvarchar(50),@3 bit,@4 nvarchar(20),@5 time(7),@6 time(7),@7 int,@8 tinyint,@9 nvarchar(50),@10 datetime2(7),@11 nvarchar(50),@12 datetime2(7),
@13 nvarchar(1000),@14 nvarchar(20),@15 nvarchar(20),@16 datetime2(7),@17 int',
@0=N'A35560',@1='2019-07-11 15:48:33.1470000',@2=N'张扬',@3=1,@4=N'9-18',@5='09:00:00',@6='13:49:00',@7=30,@8=9,@9=N'18616761739',@10='2019-07-11 15:48:33.1470000',@11=N'zfzl',
@12='2019-07-12 10:13:20.1053228',@13=N'【2019-07-12 10:13:20 zfzl 删除】',@14=N'yx3',@15=N'18616761739',@16='2019-07-11 15:48:33.1470000',@17=40

--不置状态时,按需求几个字段有变化,就update几个字段
exec sp_executesql N'UPDATE [dbo].[SalerInfoChangePlan]
SET [status] = @0, [updater] = @1, [updated] = @2, [audit_log] = @3
WHERE ([id] = @4)
',N'@0 tinyint,@1 nvarchar(50),@2 datetime2(7),@3 nvarchar(1000),@4 int',@0=9,@1=N'zfzl',@2='2019-07-12 10:19:57.9052377',@3=N'【2019-07-12 10:19:57 zfzl 删除】',@4=41

--所以,个人建议不需要添加这一行。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

笑羽酣天

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值