Asp.net mvc MVC DataContext是否可以共享一个连接
什么时候“工作单位”不再是“单位”?哪种方案在资源方面更好?第一个创建一个连接,而第二个创建4个连接Asp.net mvc MVC DataContext是否可以共享一个连接,asp.net-mvc,linq,datacontext,Asp.net Mvc,Linq,Datacontext,什么时候“工作单位”不再是“单位”?哪种方案在资源方面更好?第一个创建一个连接,而第二个创建4个连接 using (DataContext dc=new DataContext) { var orders= from o in dc.orders select ( new Product { property a= from a in ..join... select x, pro
using (DataContext dc=new DataContext)
{
var orders= from o in dc.orders
select ( new Product { property a= from a in ..join... select x,
property b= from b in ..join... select y,
property c= from c in ..join... select z.}
)
}
或
一般来说,往返数据库的次数越少越好。然而,在大规模应用程序中,我们经常使数据库变得越来越“哑”,因此我们最终不进行任何连接,这样就不会占用SQL数据库服务器上的CPU和内存。这实际上取决于你发现哪些资源更稀缺。如果您的SQL server有足够的资源,请在那里进行连接,否则单独将其拉回来会更好。您是否在SQL分析器中查看了这一结果?您确定是4个连接,还是4个单独的呼叫?一般来说,到数据库的往返次数越少越好。然而,在大规模应用程序中,我们经常使数据库变得越来越“哑”,因此我们最终不进行任何连接,这样就不会占用SQL数据库服务器上的CPU和内存。这实际上取决于你发现哪些资源更稀缺。如果您的SQL server有足够的资源,请在那里进行连接,否则单独将其拉回来会更好。您是否在SQL分析器中查看了这一结果?您确定是4个连接,还是4个单独的调用?使用LINQ时,如果您将一个实体添加到另一个实体,并且它们使用不同的数据上下文,则会出现错误。我建议为您正在使用的每个工作单元保留相同的数据上下文。通过使用存储库模式编写数据访问类,您可以轻松地识别正在处理的工作单元。如果您不清楚存储库模式,在使用LINQ时,如果您将一个实体添加到另一个实体,并且它们使用不同的数据上下文,您将得到一个错误。我建议为您正在使用的每个工作单元保留相同的数据上下文。通过使用存储库模式编写数据访问类,您可以轻松地识别正在处理的工作单元。如果您不清楚存储库模式
using (DataContext dc=new DataContext)
{
var orders= from o in dc.orders
select ( new Product { property a = GetPropertyA(),
property b = GetPropertyB(),
property c = GetPropertyC()}
)
}