首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于C#中LINQ2Sql性能的问题

关于C#中LINQ2Sql性能的问题
EN

Stack Overflow用户
提问于 2009-09-01 14:50:50
回答 2查看 136关注 0票数 2

从性能的角度来看,是将利用LINQ的每个语句包装在using()语句中,还是声明一个类级实例并在每个方法中使用哪个更好?

例如:

代码语言:javascript
复制
public void UpdateSomeRecord(Record recordToUpdate)
{
    using(var entities = new RecordDBEntities())
    {
        // logic here...
    }
}


private RecordDBEntities entites = new RecordDBEntities();
public void UpdateSomeRecord(Record recordToUpdate)
{
    // logic here...
}

或者这两种方式都无关紧要?

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-09-01 14:55:24

using语句可能会损害性能,因为它将花费更长的时间来运行,但在这种情况下,这不应该是您关心的问题。如果一个类型实现了IDisposable,那么它实际上应该被包装在一个using语句中,这样它就可以自己清理掉。

当然,这种清理代码比没有清理代码需要更长的运行时间,这就是为什么我说using语句需要更长的时间来运行。但这并不意味着您不应该使用using语句。我认为您应该使用using语句,即使它可能需要更长的运行时间。

我想我想说的是,您在这里是在比较苹果和橙子,因为只有当被比较的代码产生相同的输出和相同的副作用时,性能比较才有意义。你的例子没有,所以我不认为这是一个性能问题。

这种情况下的最佳实践是对实现IDisposable的类型使用using语句,而不管using语句是否会使方法运行更长时间。如果您需要知道它将运行多长时间,那么您应该使用分析器来确定有问题的代码是否正在造成瓶颈。

票数 3
EN

Stack Overflow用户

发布于 2009-09-01 14:54:22

实际上,您的问题是关于LINQ DataContext的生命周期管理。

你可以看看下面的文章:Linq to SQL DataContext Lifetime Management

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1362904

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档