急!!!关于Entity Framework更新表部分字段问题
本帖最后由 jinlshan 于 2013-10-7 17:54 编辑第一次使用EF,在更新数据时,如果只更新其中部分字段,为什么生成的Update SQL语句会是把所有的字段都更新了呢?代码如下:(我使用的是DbContext,而且Opr_Pro_Work不是继承自EntityObject类)
using (JLSContext db = JLSDBContextManager.GenerateJLSContext())
{
Opr_Pro_Work w1=db.Opr_Pro_Work.Where(it=>it.WorkID==1).FirstOrDefault(); w1.IsPrint = true;
db.Entry(w1).State = EntityState.Modified;
db.SaveChanges();
}
生成的SQL语句:
exec sp_executesql N'update .
set = @0, = @1, = @2, = @3, = @4, = @5, = @6, = @7, = @8, = @9, = @10, = @11, = @12, = @13, = @14, = @15, = @16, = @17, = @18, = @19, = null, = null, = null, = @20, = null, = null, = null, = @21, = @22, = @23, = @24, = @25, = @26, = @27, = @28, = @29
where ( = @30)
',N'@0 nvarchar(20),@1 nvarchar(30),@2 int,@3 int,@4 nvarchar(20),@5 int,@6 int,@7 int,@8 nvarchar(50),@9 nvarchar(50),@10 nvarchar(110),@11 nvarchar(100),@12 nvarchar(100),@13 int,@14 nvarchar(6),@15 nvarchar(50),@16 decimal(30,12),@17 decimal(30,12),@18 decimal(30,12),@19 nvarchar(6),@20 int,@21 datetime2(7),@22 datetime2(7),@23 nvarchar(50),@24 bit,@25 bit,@26 int,@27 int,@28 bit,@29 int,@30 bigint',@0=N'00000000000000000198',@1=N'OP20130900000645610576045',@2=87,@3=17,@4=N'OP201309000006',@5=109,@6=181,@7=36,@8=N'456',@9=N'0',@10=N'白色 11-0601',@11=N'34/36',@12=N'件',@13=45,@14=N'10576',@15=N'反送活',@16=18000000000,@17=30.000000000000,@18=0.540000000000,@19=N'',@20=0,@21='2013-10-05 00:00:00',@22='2013-10-05 10:46:44.3300000',@23=N'Admin',@24=1,@25=0,@26=0,@27=1,@28=1,@29=0,@30=198
可以下载一个叫EntityFramework.Extended的扩展类 rakehell 发表于 2013-10-9 16:08
可以下载一个叫EntityFramework.Extended的扩展类
问题我已经自己解决,不过还是谢谢! jinlshan 发表于 2013-10-11 07:20
问题我已经自己解决,不过还是谢谢!
你的解决方案是什么?可以贴上来参考一下不? rakehell 发表于 2013-10-14 15:47
你的解决方案是什么?可以贴上来参考一下不?
解决方法在这
http://bbs.csdn.net/topics/390608288?page=1#post-395718024 学习下,
jinlshan 发表于 2013-10-18 08:03
解决方法在这
http://bbs.csdn.net/topics/390608288?page=1#post-395718024
过去看看学习学习
页:
[1]