Bat*_*rog 3 c# database entity-framework asp.net-mvc-3
我有一个类包含几个为我的MVC应用程序定制的常用方法,我在几个地方使用.这是一些例子:
private MyEntities db = new MyEntities();
public List<SelectListItem> GetLocationList()
{
var query =
db.v_LocationsAlphabetical.OrderByDescending(x => x.Category).ThenBy(x => x.LocationName).ToList()
.Select(x => new SelectListItem
{
Value = x.LocationID.ToString(),
Text = x.LocationName
});
return (query).ToList();
}
public IEnumerable<SelectListItem> GetStates()
{
var query = db.States.Select(x => new SelectListItem
{
Value = x.Abbr,
Text = x.Name
});
return(query);
}
public List<Person> GetPeople()
{
var query = db.Person.OrderBy(m => m.LastName).ThenBy(m => m.FirstName).ToList();
return (query);
}
Run Code Online (Sandbox Code Playgroud)
这些方法中的每一个都调用数据库来获取数据,我想知道是否需要为每个方法添加一个dispose.如果没有,为什么?谢谢.
您不应该在每个方法中调用dispose,因为它的生命周期db与封闭类的生命周期相同,因为它不是方法中的局部变量.
处理这种情况的典型方法是使当前的类IDisposable和调用db.Dispose()的Dispose()方法.