Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net LINQtoSQL如何与sql连接一起工作?_.net_Linq To Sql - Fatal编程技术网

.net LINQtoSQL如何与sql连接一起工作?

.net LINQtoSQL如何与sql连接一起工作?,.net,linq-to-sql,.net,Linq To Sql,使用linq数据上下文的最佳方式是什么?链接如何与sql连接一起工作(何时打开连接,何时关闭连接)?当我处理数据上下文时,我应该经常使用using语句吗 很抱歉,问题太多了。提前感谢。这里有很多内容需要介绍-我将向您提供我的盆栽视图-然后提供一些链接等,以进一步帮助您 不过,在这个网站上还有许多其他类似的问题,所以搜索一下,你会发现更多 使用寿命 您不需要将using语句与Linq to Sql DataContext一起使用,但您必须在完成后处理它。因此,使用块是最好的方式,因为它的尝试。。

使用linq数据上下文的最佳方式是什么?链接如何与sql连接一起工作(何时打开连接,何时关闭连接)?当我处理数据上下文时,我应该经常使用using语句吗


很抱歉,问题太多了。提前感谢。

这里有很多内容需要介绍-我将向您提供我的盆栽视图-然后提供一些链接等,以进一步帮助您

不过,在这个网站上还有许多其他类似的问题,所以搜索一下,你会发现更多

使用寿命

  • 您不需要将
    using
    语句与Linq to Sql DataContext一起使用,但您必须在完成后处理它。因此,使用块是最好的方式,因为它的尝试。。。最后是{}语义。因此,在我看来,您应该使用
    using

  • 您应该而不是使linq to sql数据上下文长时间处于打开状态,因为上下文打开的每个对象中都会发生更改跟踪,这会损害性能并可能导致意外行为

  • 据我所知,Sql连接在构建上下文时打开,在释放上下文时关闭

因此,当您想要选择、插入、更新或删除数据时,应该打开linq到sql上下文,然后在完成后关闭它。例如,通过同一DC插入100条记录就可以了;正在更新或删除。然而,我可能不会选择一种类型的几千条记录,更新另一种类型的几千条记录,然后在一个上下文中删除另一种类型的更多记录——主要是出于性能原因

相关数据

如果您有相关数据,即表A->表B,那么要知道DataContext(DC)的默认值是从A的子属性访问时延迟加载B中的相关行。因此,如果您打算在创建和处理用于选择的DC的代码之外传回一个linq to sql生成的类,您可以得到被抛出的
ObjectDisposedException
s

为了避免这种情况,您可以使用DataLoadOptions.LoadWith和DataLoadOptions.AssociateWith来缓解这种情况,这会在选择一行时强制预取相关行。但是,这会增加Linq To Sql查询从数据库读取的数据量,因此您通常不会对所有查询应用所有相关记录的预取,而只对那些您知道需要它们的查询应用预取

抱歉,我没有给出代码示例或其他任何内容-一个答案中有很多内容-但这里有一些链接:


-这是linq在他的博客上的搜索-向下滚动,翻阅,你会找到所有不同的部分,从2007年5月的第1部分开始。

这里有很多内容要介绍-我会给你我的盆栽视图-然后给你一些链接等,以帮助你进一步了解

不过,在这个网站上还有许多其他类似的问题,所以搜索一下,你会发现更多

使用寿命

  • 您不需要将
    using
    语句与Linq to Sql DataContext一起使用,但您必须在完成后处理它。因此,使用块是最好的方式,因为它的尝试。。。最后是{}语义。因此,在我看来,您应该使用
    using

  • 您应该而不是使linq to sql数据上下文长时间处于打开状态,因为上下文打开的每个对象中都会发生更改跟踪,这会损害性能并可能导致意外行为

  • 据我所知,Sql连接在构建上下文时打开,在释放上下文时关闭

因此,当您想要选择、插入、更新或删除数据时,应该打开linq到sql上下文,然后在完成后关闭它。例如,通过同一DC插入100条记录就可以了;正在更新或删除。然而,我可能不会选择一种类型的几千条记录,更新另一种类型的几千条记录,然后在一个上下文中删除另一种类型的更多记录——主要是出于性能原因

相关数据

如果您有相关数据,即表A->表B,那么要知道DataContext(DC)的默认值是从A的子属性访问时延迟加载B中的相关行。因此,如果您打算在创建和处理用于选择的DC的代码之外传回一个linq to sql生成的类,您可以得到被抛出的
ObjectDisposedException
s

为了避免这种情况,您可以使用DataLoadOptions.LoadWith和DataLoadOptions.AssociateWith来缓解这种情况,这会在选择一行时强制预取相关行。但是,这会增加Linq To Sql查询从数据库读取的数据量,因此您通常不会对所有查询应用所有相关记录的预取,而只对那些您知道需要它们的查询应用预取

抱歉,我没有给出代码示例或其他任何内容-一个答案中有很多内容-但这里有一些链接:


-这是一个linq to a在他的博客上的搜索-向下滚动,翻阅,你会找到所有不同的部分,从2007年5月的第1部分开始。

谢谢Andras!你的回答真的很棒。代码示例不是必需的…谢谢Andras!你的回答真的很棒。实际上并不需要代码示例。。。