问个EF问题 在mVC 中

xlong224 2014-07-29 05:14:30
程序本地运行测试无问题


服务器上 提示 错误
“正在创建模型,此时不可使用上下文。”异常

查找是db没有关闭掉

我想问的是 该怎么处理
对每个controller 调用 使用using 关闭吗

还是有别的好的方法 求大神指教
...全文
178 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
cocosip 2014-07-30
  • 打赏
  • 举报
回复
引用 3 楼 moonwrite 的回复:
最近被邀请的次数多啊~ 1. 既然用EF了,那么为什么还要用sql呢~ 2.不要using, EF会自动释放链接的 还有有更好的方式就是使用IOC 你可以参考NopCommerce 使用IOC是Autofac你可以先看看这方面的知识 依赖注入的地方在Nop.Web.Framework.DependencyRegistrar中 然后研究IRepository与EfRepository 再看看Service是怎么用的~
此楼说的对,既然已经使用ef,为什么还要用sql语句?明显吃力不讨好。
moonwrite 2014-07-29
  • 打赏
  • 举报
回复
补充一下~你可以看到依赖注入的地方很多都有InstancePerHttpRequest 这个是用来控制对象的生命周期的~ 不同与.Net自带的失去引用就会被回收 InstancePerHttpRequest这个是一次http请求只创建一个对象并且在请求响应后回收 controller action(){ serviceA.add(), servcieB.update. serviceC.delete() //按你现在的写法,会创建3个EF,但使用InstancePerHttpRequest,只会创建一个EF } 我当时看到这个很激动~猜测后~用GetHashCode验证了~的确只创建了一个EF
moonwrite 2014-07-29
  • 打赏
  • 举报
回复
最近被邀请的次数多啊~ 1. 既然用EF了,那么为什么还要用sql呢~ 2.不要using, EF会自动释放链接的 还有有更好的方式就是使用IOC 你可以参考NopCommerce 使用IOC是Autofac你可以先看看这方面的知识 依赖注入的地方在Nop.Web.Framework.DependencyRegistrar中 然后研究IRepository与EfRepository 再看看Service是怎么用的~
xlong224 2014-07-29
  • 打赏
  • 举报
回复
引用 1 楼 winner2050 的回复:
你还没有关闭上下文呢。 /// <summary> /// 搜索 /// </summary> /// <param name="fullname">姓名</param> /// <returns></returns> public IList<Employee> Search(string fullname) { using (Entities db = new Entities()) { return db.Employees.Include(x => x.Department).Where(x => x.Property == (PropertyOperate.NotDraft | PropertyOperate.NotDeleted) && x.FullName.Contains(fullname)) .ToList(); } } 看出差别了吗?
我的意思是 每个方法都要这样写吗 有没好的办法 统一来处理 使用using
winner2050 2014-07-29
  • 打赏
  • 举报
回复
你还没有关闭上下文呢。 /// <summary> /// 搜索 /// </summary> /// <param name="fullname">姓名</param> /// <returns></returns> public IList<Employee> Search(string fullname) { using (Entities db = new Entities()) { return db.Employees.Include(x => x.Department).Where(x => x.Property == (PropertyOperate.NotDraft | PropertyOperate.NotDeleted) && x.FullName.Contains(fullname)) .ToList(); } } 看出差别了吗?

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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