【发布时间】:2011-07-22 13:33:19
【问题描述】:
我已获准在我们的 ASP.NET 应用程序中为新模块实施 LINQ to SQL。我忘记了处理检索对象所需的 DataContext 的最佳方法;我应该在每个使用它的方法中创建它,还是有某种实用程序类以不同的方式管理它?
例如,我有一个 ActiveRecord 样式检索实体的类。我应该使用类似的东西:
using (MyAppDataContext context = new MyAppDataContext())
{
// do stuff here...
}
在这些方法中的每一个?我在 LINQ 教程中经常看到这种用法,但我也看到了一种方法,其中有一个 Utilities 类,它有一些返回 DataContext 的方法(GetContext 或类似的);我忘记了该方法是否只是新方法的包装,或者它是否执行了某种单例类型的机制。
哪种方法更好?
【问题讨论】:
-
你的应用是什么?网络? wpf?这可能很重要......(但在任何一种情况下,单身可能都是一个非常糟糕的主意 - 不要那样做)
-
您不想打开 DataContext。见神话#10 albahari.com/nutshell/10linqmyths.aspx
-
@asawyer 是的,但是在“每个查询”和“全局”之间有一个中间地带;例如,在 Web 应用程序中,您可能会选择“按请求”,这将有合理的机会从身份管理器等中“命中”,而不会出现过时数据或线程安全问题
标签: c# linq-to-sql