Linq to sql 是否有任何理由使用一个DataContext实例而不是几个实例?

Linq to sql 是否有任何理由使用一个DataContext实例而不是几个实例?,linq-to-sql,datacontext,Linq To Sql,Datacontext,例如,我有两个方法使用一个DataContext(Linq到sql) 用这种风格?或者使用相同的结果,我可以创建单独的“使用DataContext”。如果使用一个DataContext,我将获得什么好处?可能有一些缓存的可能性?数据上下文跟踪更改并进行缓存,因此,是的缓存是一种可能性,这取决于您正在执行的工作。最近,我阅读了大量文章和博客,“强烈建议”您在应用程序中使用多个数据上下文,由于多个问题,包括创建与查找表关联的记录。当我学习LINQtoSQL时,它最吸引我的特性之一就是能够将完整的数据

例如,我有两个方法使用一个DataContext(Linq到sql)


用这种风格?或者使用相同的结果,我可以创建单独的“使用DataContext”。如果使用一个DataContext,我将获得什么好处?可能有一些缓存的可能性?

数据上下文跟踪更改并进行缓存,因此,是的缓存是一种可能性,这取决于您正在执行的工作。

最近,我阅读了大量文章和博客,“强烈建议”您在应用程序中使用多个数据上下文,由于多个问题,包括创建与查找表关联的记录。当我学习LINQtoSQL时,它最吸引我的特性之一就是能够将完整的数据库模式导入到一个“大”数据上下文中。所以,我就是这么做的……但几个月后,矛盾的信息传来,说我所做的是件坏事。做什么,做什么

九个月后,我站在这里。我的单个大数据上下文仍然是我的单个大数据上下文。我有30多个数据存储库类访问其中包含的60多个表,但我仍然没有找到打破现有数据dom或不使用单个DataContext处理下一个项目的有效理由。文章和博客作者遇到的问题是有效的问题。然而,像大多数技术性的事情一样,做事从来没有一种方法。我投入的时间和精力中最好的一项就是学习并真正理解LINQtoSQL是如何做到这一点的。我发现帮助我做到这一点的最好的一本书是Joseph C.Rattz,Jr.写的。LINQ到SQL的覆盖范围是详细而清晰的,并且有大量的例子来澄清这个谜团


因此,在您的情况下,创建一个大数据上下文或创建多个小数据上下文…选择权在您。较小的代码显然提供了更好的重用机会,而较大的代码有助于增加您关注业务逻辑和表示代码的时间。

我在这里谈的不是大的,也不是小的。我的问题是:堆栈的所有方法中都有一个实例,或者每个方法中都有一个多个实例。。。如果要对同一DataContext执行多个方法,那么一定要使用using块。使用示例作为参数传入DataContext需要为每个方法调用在本地初始化对象。您可以选择将单个全局DC作为单例对象,但如果元对象在使用后未刷新,则可能会产生并发问题。using块确保DC实例在使用后被释放。我会同意的。。。
 using(DataContext data = new DataContext){
   // doing something
   another_datamethod(data);
 }

 void another_datamethod(DataContext data){
   // doing
 }