调用Update方法:
查看生成的SQL语句如下:
结果发现只是想根据主键更新Name,但是在条件上还带上了需要更新的值Name = ''Jeffcky1
但是在数据库中这个条件是不存在的
为什么会带上需要更新值的条件呢?百思不得其解
为什么要这样更新?为什么不使用EF Core的状态跟踪进行更新?
主要是为了跟踪指定属性,dudu有什么好的办法吗,上面出错的可能原因是什么呢?
上述也是利用ef的状态进行跟踪啊,只不过为了方便利用lambda指定更新的属性罢了
@Jeffcky: 我猜测出错的可能原因是:blog是new出来的,没有被EF跟踪,EF不知道where中只需用Id,如果blog是用EF通过Id查出来的,EF就知道了。
@dudu: 查出来更新那肯定是没问题的!那要是这样的话,如果需要编辑修改一个对象的话,此时到后台中的对象也是没有被跟踪的,如果此时我只是更新这个对象中的某个属性,那么该如何做?我这种也是首先利用EntityState.Unchanged来EF来跟踪再来更新指定属性,不合情合理么?
@Jeffcky: 我也不知道怎么做,你得想办法让EF Core知道如何生成where语句
bu不然怎么EF怎么知道在他读取后有没有被改过呢.
将其附加也不行啊,实例化一个对象然后将其附加,最后进行更新这本来就是可以的嘛,我这里不也是一样么?
将其附加也不行啊,实例化一个对象然后将其附加,最后进行更新这本来就是可以的嘛,我这里不也是一样么?
暂时还未解决!