我一直在查看 Nerd Dinner 代码,他们在模型中做的一件事是创建一个 DataContext 实例,如下所示:
public class DinnerRepository {
private NerdDinnerDataContext db = new NerdDinnerDataContext();
public IQueryable<Dinner> FindUpcomingDinners() {
return from dinner in db.Dinners
where dinner.EventDate > DateTime.Now
orderby dinner.EventDate
select dinner;
}
// more methods below
}
这些在 Controller 中使用,如下所示:
public class DinnersController : Controller {
DinnerRepository dinnerRepository = new DinnerRepository();
public ActionResult Index() {
var dinners = dinnerRepository.FindUpcomingDinners().ToList();
return View("Index", dinners);
}
}
但似乎 NerdDinnerDataContext 从未被处理过。这是我应该担心的问题吗?或者这个模式可以吗?
注意:不是最新的 Nerd 晚餐代码,我知道
最佳答案
事实证明,在典型的应用程序中,处置 DataContext 对象通常不是您想要做的事情。
有关更多详细信息,请参阅 http://mostlytech.blogspot.com/2008/01/linq-datacontextdispose.html(当然,作者是 Jon Skeet)。
关于c# - Nerd 晚餐模型是否使用最佳实践来处理对象?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1771806/