首页 新闻 会员 周边 捐助

EF Core更新异常

1
悬赏园豆:20 [已关闭问题] 关闭于 2017-02-25 15:20

调用Update方法:

查看生成的SQL语句如下:

结果发现只是想根据主键更新Name,但是在条件上还带上了需要更新的值Name = ''Jeffcky1
但是在数据库中这个条件是不存在的

为什么会带上需要更新值的条件呢?百思不得其解


Jeffcky的主页 Jeffcky | 老鸟四级 | 园豆:2789
提问于:2017-02-24 14:55
< >
分享
所有回答(3)
1

为什么要这样更新?为什么不使用EF Core的状态跟踪进行更新?


dudu | 园豆:29568 (高人七级) | 2017-02-24 16:34

主要是为了跟踪指定属性,dudu有什么好的办法吗,上面出错的可能原因是什么呢?


支持(0) 反对(0) Jeffcky | 园豆:2789 (老鸟四级) | 2017-02-24 16:37

上述也是利用ef的状态进行跟踪啊,只不过为了方便利用lambda指定更新的属性罢了


支持(0) 反对(0) Jeffcky | 园豆:2789 (老鸟四级) | 2017-02-24 16:39

@Jeffcky: 我猜测出错的可能原因是:blog是new出来的,没有被EF跟踪,EF不知道where中只需用Id,如果blog是用EF通过Id查出来的,EF就知道了。


支持(0) 反对(0) dudu | 园豆:29568 (高人七级) | 2017-02-24 17:05

@dudu: 查出来更新那肯定是没问题的!那要是这样的话,如果需要编辑修改一个对象的话,此时到后台中的对象也是没有被跟踪的,如果此时我只是更新这个对象中的某个属性,那么该如何做?我这种也是首先利用EntityState.Unchanged来EF来跟踪再来更新指定属性,不合情合理么?


支持(0) 反对(0) Jeffcky | 园豆:2789 (老鸟四级) | 2017-02-24 17:09

@Jeffcky: 我也不知道怎么做,你得想办法让EF Core知道如何生成where语句


支持(0) 反对(0) dudu | 园豆:29568 (高人七级) | 2017-02-24 17:31
0

bu不然怎么EF怎么知道在他读取后有没有被改过呢.

吴瑞祥 | 园豆:29449 (高人七级) | 2017-02-24 17:15

将其附加也不行啊,实例化一个对象然后将其附加,最后进行更新这本来就是可以的嘛,我这里不也是一样么?


支持(0) 反对(0) Jeffcky | 园豆:2789 (老鸟四级) | 2017-02-24 17:30

将其附加也不行啊,实例化一个对象然后将其附加,最后进行更新这本来就是可以的嘛,我这里不也是一样么?


支持(0) 反对(0) Jeffcky | 园豆:2789 (老鸟四级) | 2017-02-24 17:30
0

暂时还未解决!


Jeffcky | 园豆:2789 (老鸟四级) | 2017-02-25 15:19
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册