我一直在查看 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/

10-10 13:45