0

“工作单位”何时不再是“单位”?哪个场景在资源上更好?第一个创建一个连接,而第二个创建 4 个。

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.}
                      )
}

或者

using (DataContext dc=new DataContext) 
{
  var orders= from o in dc.orders 
              select ( new Product {  property a = GetPropertyA(), 
                                      property b = GetPropertyB(),
                                      property c = GetPropertyC()}
                      )
}
4

2 回答 2

2

使用 LINQ 时,如果您将一个实体添加到另一个实体并且它们使用不同的数据上下文,您将收到错误。我建议为您使用的每个工作单元保留相同的数据上下文。通过使用存储库模式编写数据访问类,您可以轻松识别正在处理的工作单元。如果您不清楚存储库模式,请查看此条目

于 2009-01-12T22:36:29.177 回答
1

一般来说,数据库的往返次数越少越好。然而,在大规模应用程序中,我们经常使我们的数据库变得越来越“笨拙”,因此我们最终没有进行任何连接,因此我们不会占用 SQL 数据库服务器上的 CPU 和内存。这实际上取决于您发现哪些资源更稀缺。如果您的 SQL 服务器有大量资源,请在那里进行联接,否则单独将其拉回会更好。您是否在 SQL 分析器中查看过此结果?您确定是 4 个连接,还是只是 4 个单独的呼叫?

于 2009-01-12T22:20:40.067 回答