有没有正确的方法来使用db上下文类?

 红台门 发布于 2023-02-04 12:51

我想知道在使用Web站点的上下文类连接到db时,性能和一般最佳实践的差异是什么.考虑这两种不同的方法时,最好的方法是什么:

public class Repository()
{
    Private Context context;

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

要么

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

如果它将结果作为a List或as 返回是否重要IEnumerable

1 个回答
  • 从MSDN复制

    一生

    上下文的生命周期在创建实例时开始,在实例处理或垃圾收集时结束.如果您希望将上下文控制的所有资源放置在块的末尾,请使用.使用时,编译器会自动创建try/finally块并在finally块中调用dispose.

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

    在决定上下文的生命周期时,以下是一些一般性指导原则:

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

    2023-02-04 12:52 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有