首页 新闻 会员 周边 捐助

Asp.net MVC+Entity Framework6开发的程序,由于没有数据库的Update,为什么不提示出错原因?CPU占用还高呢

0
悬赏园豆:30 [已关闭问题] 关闭于 2016-01-30 17:36

Asp.net MVC+Entity Framework6开发的应用程序,代码非常简单:

using (var ef=new EFEntities())
{
var user = ef.User.FirstOrDefault(t => t.Name == "aauser");

user.Phone="123";
ef.SaveChanges()
}

由于没有数据库的Update权限,当执行数据的修改时,浏览器一直在等待响应,查看IIS7,发现占用CPU很高,好像陷入死循环了一样,但是只要把Update权限放开就非常快,这是什么原因呢?为什么也不提示出错原因?有什么办法让EF快速的返回结果,不用半天没响应,还不出错!

哪位大侠遇到过,指点一下!

slmk的主页 slmk | 初学一级 | 园豆:9
提问于:2015-09-17 17:59
< >
分享
所有回答(3)
0

1.没有添加到上下文中能更新?

2.没有Update权限为什么还要更新?

3.要快速返回,用异步试试?

wukaixian | 园豆:160 (初学一级) | 2015-09-17 20:05

如果有权限是可以修改的,问题是数据库权限控制的太严格,EF又不给提示,这排查问题就悲催了,白白浪费大好时光啊!

支持(0) 反对(0) slmk | 园豆:9 (初学一级) | 2015-09-17 20:23
0

由于调用SaveChanges时会自动DetectChanges方法来检测数据是否已经更改,接着就是更新数据到数据库,但是此时你未设置到数据库的Update更新的权限,所以此时ef上下文一直处于更新数据到数据库的状态,但是又未成功更新,这中情况下可能就会导致类似于所谓的死循环!!

Jeffcky | 园豆:2789 (老鸟四级) | 2015-09-17 20:16

就是啊,不用EF的话是会“直接提示你没有权限”的哦?用了EF就死循环了,还不给提示,这以后还怎么排查问题啊?

支持(0) 反对(0) slmk | 园豆:9 (初学一级) | 2015-09-17 20:20

@slmk: 这不是EF的问题,完全是数据库层面上的问题,是你数据库给堵死了更新的路,能怪EF吗!!

支持(0) 反对(0) Jeffcky | 园豆:2789 (老鸟四级) | 2015-09-17 20:21

@Recluse_Xpy: 都死循环了还不是EF的问题,哈哈!

支持(0) 反对(0) slmk | 园豆:9 (初学一级) | 2015-09-17 20:25

@slmk: 无意义的狡辩!

支持(0) 反对(0) Jeffcky | 园豆:2789 (老鸟四级) | 2015-09-17 20:26
0

我告诉你MVC没有超时的,你可以有2种办法实现超时,报出异常

稳稳的河 | 园豆:4216 (老鸟四级) | 2015-09-17 20:57
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册