把dbContext放在dal层里应该怎么关闭啊

问题描述

publicclassCategoryDAL{publicList<Category>GetAll(){returnnewEFContext().Categories.ToList();}}publicclassHomeController:Controller{privateCategoryDALdal=newCategoryDAL();publicActionResultIndex(){returnView(dal.GetAll());}}

这是简单的代码,dal层要是关闭了context,view层就出错了,上面不关闭没问题,但是不关闭应该是不正确的做法,请问我应该怎么解决啊。求大家给个简单的例子

解决方案

解决方案二:
没人知道吗······
解决方案三:
贴出有问题的代码。只是贴一个“没问题”的代码,干什么啊?
解决方案四:
我是问这个vardb=newEFContext()对象关闭了由于延迟加载的问题在view层就出错了using(vardb=newEFContext()){returndb.Categories.ToList();};这样关闭了就出错了·····
解决方案五:
那就在VIEW层里每次使用DAO对象后立即销毁
解决方案六:
引用楼主baidu_30105177的回复:

上面不关闭没问题,但是不关闭应该是不正确的做法

我只能说你的这个逻辑是小孩子式的啊。成年人,讲究实践的人,一定是把“有问题的”做法说成是“应该是不正确的”。你要是担心天塌下来,那么你就要用实验来说明天真的会塌下来。不要整天纠结于天塌下来这种话。

时间: 2024-11-16 00:18:16

把dbContext放在dal层里应该怎么关闭啊的相关文章

asp.net-Asp.Net抽象工厂 通过反射获取配置文件信息,为什么DAL层的dll文件无法生成到UI层,而简单工厂可以?

问题描述 Asp.Net抽象工厂 通过反射获取配置文件信息,为什么DAL层的dll文件无法生成到UI层,而简单工厂可以? 使用抽象工厂三层做程序的时候,程序报错"系统找不到指定的文件".网上百度后,把DAL层生成dll的路径指向UI层的bin目录下,问题解决.程序能正常读取数据库数据.解决完这个问题后,我写了一个简单三层程序,发现简单三层的程序,运行的时候,DAL层的dll文件能自动生成到UI层,不需要修改DAL层的指向路径.请问,抽象工厂三层出现这个问题的原因是什么?为什么简单三层不

在ASP.NET 2.0中操作数据之十八:在ASP.NET页面中处理BLL/DAL层的异常_自学过程

导言 在一个使用了分层体系架构的ASP.NET web应用系统里处理数据,一般遵循以下几步: 1.确定业务逻辑层需要调用哪个方法,并且需要出入哪些参数.这些参数可以通过硬编码设置,程序自动设定,或者由用户输入. 2.调用此方法. 3.处理结果.当调用一个返回数据的BLL方法时,这包括绑定数据到Data Web服务器控件.而对于修改数据的BLL方法而言,这包括基于返回值的基础上执行某些动作,或者适当地处理在第二步中引发的异常. 正如我们在前一节里看到的,无论ObjectDataSource控件还是

Asp.Net抽象工厂 通过反射获取配置文件信息,为什么DAL层的dll文件无法生成到UI层,而简单工厂可以?

问题描述 使用抽象工厂三层做程序的时候,程序报错"系统找不到指定的文件".网上百度后,把DAL层生成dll的路径指向UI层的bin目录下,问题解决.程序能正常读取数据库数据.解决完这个问题后,我写了一个简单三层程序,发现简单三层的程序,运行的时候,DAL层的dll文件能自动生成到UI层,不需要修改DAL层的指向路径.请问,抽象工厂三层出现这个问题的原因是什么?为什么简单三层不用修改DAL层的生成路径,而抽象工厂三层需要修改才能正常运行?配置文件中的节点中的内容应该是没有错误的,里面的v

在DAL层获取 session

问题描述 怎么在DAL层读取到session? 解决方案 解决方案二:HttpContext.Corrent.Session["User"]解决方案三:Dal层如果要获取页面Session里的东西,应该以传参的形式,而不是直接获取解决方案四:HttpContext.Corrent.Session["key"] 解决方案五:lz设计的有问题,要不就是想法不对.dal层读session做什么?解决方案六:DAL是数据访问类,需要session吗?解决方案七:引用4楼lo

将不确定变为确定~DAL层向BLL层返回数据用IEnumerable&lt;T&gt;还是IQueryable&lt;T&gt;

DAL层从数据库中将数据读出来后,传递给BLL层,再通过BLL处理数据后,向WEB层返回,最后到页面上输出,这是一个过程,在这个过程中我需要说两句,BLL层与WEB层通讯肯定是List,IList等等,即实实在在的数据,而DAL层向BLL层返回数据时,就需要注意了,因为DAL层返回一般是完整的结果集,而在BLL层根据具体的业务,再进行字段的过滤,这对于减少数据库与网络传递的压力是有帮助的,下面是一个案值,分别是向BLL层以IEnumerable和IQueryable方式进行数据的返回,最后在BL

asp.net-Model层里面的get和set问题

问题描述 Model层里面的get和set问题 public string user_name { set { _loginname = value; } get { return _loginname; } } 和 public string user_name{set;get;}有什么区别? 解决方案 区别是第一种写法能够在get和set中做更多的控制,比如判断是否为空,做一些逻辑处理等等,而第二种只能简单的赋值,不能写逻辑. 解决方案二: 一样的 第二个是第一个简写 语法糖而已 以前不支持

在单元格里或层里出现滚动条

单元格 如何在单元格里或层里出现滚动条 解决思路:     主要是通过设置元素的CSS属性overflow(包含overflow-x和overflow-y)来实现. 具体步骤: 1.自动出现横向滚动条: <div style="width:200;height:200;overflow-x:auto"> <script> //使元素出现横向滚动条 document.write(new Array(20).join("!")) //使元素出现纵

php使用gettimeofday函数返回当前时间并存放在关联数组里

 这篇文章主要介绍了php使用gettimeofday函数返回当前时间并存放在关联数组里的方法,涉及php中gettimeofday函数的使用技巧,需要的朋友可以参考下     本文实例讲述了php使用gettimeofday函数返回当前时间并存放在关联数组里的方法.分享给大家供大家参考.具体分析如下: 英文官方描述如下: Key Description sec Seconds since midnight before January 1, 1970 usec Microseconds sin

js-判断鼠标是否在层里,qwe2里的num是[object]

问题描述 判断鼠标是否在层里,qwe2里的num是[object] <br> var array1 = new Array();//将原始数据分割成数组<br> var arrays = new Array();//将array1中偶数项存入此数组<br> var num =""; //记录当前点击的是第几个<a><br> var div = document.createElement("DIV");&l