gpt4 book ai didi

c# - 在 LINQ to SQL 中处理 DataContext 的最佳方式

转载 作者:行者123 更新时间:2023-11-30 18:03:47 24 4
gpt4 key购买 nike

我已经获准在我们的 ASP.NET 应用程序中为新模块实现 LINQ to SQL。我忘记了处理检索对象所需的 DataContext 的最佳方法;我应该在使用它的每个方法中创建它,还是有某种 Utility 类以不同的方式管理它?

例如,我有一个 ActiveRecord 样式检索实体的类。我应该使用类似的东西吗:

using (MyAppDataContext context = new MyAppDataContext()) 
{
// do stuff here...
}

在这些方法中的每一个?我看到这在 LINQ 教程中经常使用,但我也看到了一种方法,其中有一个 Utilities 类,它有一些返回 DataContext 的方法(GetContext 或相似的);我忘记了该方法是否只是 new up 的包装器,或者它是否执行某种单例类型的机制。

哪种方法更好?

最佳答案

就我个人而言,我使用类似这样的东西:

public class MyClass : MyBaseClass
{
public void GetData()
{
using(DbDataContext db = new DbDataContext())
{
// DO STUFF
}
}

public void PerformLogicallyAtomicAction()
{
using(DbDataContext db = new DbDataContext())
{
// DO STUFF
}
}
}

除非需要更长时间地保持数据上下文打开。

更新

进一步澄清我这样做的原因:

1) 我不希望某个对象在内存中的时间超过我需要的时间

以下是主要原因

2)在某些情况下,跟踪更改数据会导致数据过时(参见 OP 的第二条评论)

3)创建新对象花费0时间(有效)

4) 通过在每次需要时创建它,我可以更改特定的 LINQ 选项(例如 ObjectTrackingEnabled (我经常关闭它)

关于c# - 在 LINQ to SQL 中处理 DataContext 的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6790755/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com