gpt4 book ai didi

c# - 是否有使用数据库上下文类的正确方法?

转载 作者:行者123 更新时间:2023-11-30 13:46:28 25 4
gpt4 key购买 nike

我想知道在使用网站的上下文类连接到数据库时,性能和一般最佳实践有何不同。考虑这两种不同的方法时,最好的方法是什么:

public class Repository()
{
Private Context context;

public List<User> GetUsers()
{
return this.context.Users.ToList();
}

public class Repository()
{
public List<User> GetUsers()
{
using (Context context = new context())
{
return context.Users.ToList();
}
}
}

它以 ListIEnumerable 形式返回结果是否重要?

最佳答案

复制自MSDN

生命周期

上下文的生命周期从实例创建时开始,到实例被释放或垃圾回收时结束。如果您希望上下文控制的所有资源都在 block 的末尾处理,请使用 using。当你使用 using 时,编译器会自动创建一个 try/finally block ,并在 finally block 中调用 dispose。

using (var context = new ProductContext())
{
// Perform data access using the context
}

在决定上下文的生命周期时,这里有一些通用准则:

在处理长时间运行的上下文时,请考虑以下事项:当您将更多对象及其引用加载到内存中时,上下文的内存消耗可能会迅速增加。这可能会导致性能问题。请记住在不再需要时处理上下文。如果异常导致上下文处于不可恢复的状态,则整个应用程序可能会终止。随着查询和更新数据的时间间隔的增加,遇到与并发相关的问题的机会也会增加。在使用 Web 应用程序时,为每个请求使用一个上下文实例。使用 Windows Presentation Foundation (WPF) 或 Windows 窗体时,请为每个窗体使用一个上下文实例。这使您可以使用上下文提供的更改跟踪功能。

关于c# - 是否有使用数据库上下文类的正确方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21074911/

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