EF 更新部分字段,报错,未更新字段是必需的,求大神解惑

朝花夕实 2015-11-26 11:25:27

问题是这样子 :这是一个用户信息修改界面

只允许修改用户姓名和用户名(不要纠结用户名能不能修改,这是添加界面粘过来的,还没改好呢,就报错,用户名不是主键)

出现的错误:


打了断点,找到这个Error,的出来某些字段是必需的?这是个什么鬼啊?

大神们,看看咋个回事,被折磨两天了。


...全文
1288 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
June-Snow 2017-09-15
  • 打赏
  • 举报
回复
使用部分列更新的方法就不会报错了,不要更新查询出来的数据
BitCoffee 2015-11-27
  • 打赏
  • 举报
回复
数据库里面的数据表字段的限定最好是要和代码中实体的限定要一致.不然有可能会出现异常.
BitCoffee 2015-11-27
  • 打赏
  • 举报
回复
你也可以先从数据库读取数据,然后给需要修改的字段属性赋值.
BitCoffee 2015-11-27
  • 打赏
  • 举报
回复
引用 13 楼 yangming19860624 的回复:
[quote=引用 12 楼 BitCoffee 的回复:] 看一下你数据库Sys_User表中的user_pass字段是不是设置的不允许为空的。 如果是的话,实体中的属性限定和数据库表中的设置不一致的话,有时可能会出现DbEntityValidationException的异常。
我的QQ:312359647 qq聊聊吧。我都快昏了[/quote] ... 上班时间上不了QQ.
runerback 2015-11-26
  • 打赏
  • 举报
回复
非空字段未赋值吗?
朝花夕实 2015-11-26
  • 打赏
  • 举报
回复
引用 12 楼 BitCoffee 的回复:
看一下你数据库Sys_User表中的user_pass字段是不是设置的不允许为空的。 如果是的话,实体中的属性限定和数据库表中的设置不一致的话,有时可能会出现DbEntityValidationException的异常。
我的QQ:312359647 qq聊聊吧。我都快昏了
BitCoffee 2015-11-26
  • 打赏
  • 举报
回复
看一下你数据库Sys_User表中的user_pass字段是不是设置的不允许为空的。 如果是的话,实体中的属性限定和数据库表中的设置不一致的话,有时可能会出现DbEntityValidationException的异常。
朝花夕实 2015-11-26
  • 打赏
  • 举报
回复


问题的根结就在于,前台页面装载的Model只是装载了需要更改的属性,不需要更改的都是Null,才把错啊
BitCoffee 2015-11-26
  • 打赏
  • 举报
回复
引用 9 楼 yangming19860624 的回复:
[quote=引用 8 楼 BitCoffee 的回复:]
[quote=引用 4 楼 yangming19860624 的回复:]
[quote=引用 2 楼 BitCoffee 的回复:]
user_pass字段是不是required.


前台的代码里面现在还没有 required的内容呢。仅仅更新一个用户姓名,也只有两个文本框而已,没有密码框[/quote]
看下Sys_User类里面的user_pass属性是不是限定了required.[/quote]

没有啊。你说的是哪里?[/quote]
Sys_User这个实体类的代码贴出来看看.是不是此类里面的user_pass属性上面有[Required]的限定.
朝花夕实 2015-11-26
  • 打赏
  • 举报
回复
引用 8 楼 BitCoffee 的回复:
[quote=引用 4 楼 yangming19860624 的回复:] [quote=引用 2 楼 BitCoffee 的回复:] user_pass字段是不是required.
前台的代码里面现在还没有 required的内容呢。仅仅更新一个用户姓名,也只有两个文本框而已,没有密码框[/quote] 看下Sys_User类里面的user_pass属性是不是限定了required.[/quote] 没有啊。你说的是哪里?
BitCoffee 2015-11-26
  • 打赏
  • 举报
回复
引用 4 楼 yangming19860624 的回复:
[quote=引用 2 楼 BitCoffee 的回复:] user_pass字段是不是required.
前台的代码里面现在还没有 required的内容呢。仅仅更新一个用户姓名,也只有两个文本框而已,没有密码框[/quote] 看下Sys_User类里面的user_pass属性是不是限定了required.
朝花夕实 2015-11-26
  • 打赏
  • 举报
回复
引用 5 楼 kongwei521 的回复:
用try catch 捕获下。 try { // 写数据库 } catch (DbEntityValidationException dbEx) { //看看dbEX错误信息 }
就是那个错误,说是没有更新的字段是必需的
朝花夕实 2015-11-26
  • 打赏
  • 举报
回复
引用 5 楼 kongwei521 的回复:
用try catch 捕获下。 try { // 写数据库 } catch (DbEntityValidationException dbEx) { //看看dbEX错误信息 }
得到的错误,上面不是有图吗?
蝶恋花雨 2015-11-26
  • 打赏
  • 举报
回复
用try catch 捕获下。 try { // 写数据库 } catch (DbEntityValidationException dbEx) { //看看dbEX错误信息 }
朝花夕实 2015-11-26
  • 打赏
  • 举报
回复
引用 2 楼 BitCoffee 的回复:
user_pass字段是不是required.
前台的代码里面现在还没有 required的内容呢。仅仅更新一个用户姓名,也只有两个文本框而已,没有密码框
朝花夕实 2015-11-26
  • 打赏
  • 举报
回复
引用 1 楼 shaoerbao 的回复:
非空字段未赋值吗?
是啊,非空字段就是没有赋值,我只要更新一两个字段啊,看我注释的内容,就是补齐了之后,就不报错了
BitCoffee 2015-11-26
  • 打赏
  • 举报
回复
user_pass字段是不是required.

8,497

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 LINQ
社区管理员
  • LINQ
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧