gpt4 book ai didi

.net - DataContext 范围最佳实践

转载 作者:行者123 更新时间:2023-12-04 18:18:15 25 4
gpt4 key购买 nike

使用 Linq-to-Sql 时,Visual Studio 会为您创建一个 DataContext 类。我想知道什么时候实例化这个上下文,在我的一个项目中,我使用了一个 DataContext 实例来处理大约 300 个 CRUD 命令(整个项目),它解决了一个我后来设法解决的小问题,在我最近的项目中我有为每个 CRUD 命令创建了一个实例,现在的问题是,使用 DataContext 的最佳方法是什么?每个命令一个还是每个项目一个?或者每笔交易一个(我认为这也是一个好主意)?
每种方式的速度和性能有什么区别吗?

最佳答案

当您将其打开太短时,您会浪费性能,因为实例化 DataContext 并不是完全免费的。它很便宜,但可以衡量。它显示在配置文件中。

当您将其打开太久时,您也会遇到问题:

  • 物体开始在里面堆积
  • 无论如何,您不能在多个线程或多个事务中同时使用它
  • 如果您的 SubmitChanges 之一由于某种逻辑原因失败,则上下文已失效,因为无论您重试多久,都会出现相同的错误

  • 以下是一些你不应该在没有深入了解的情况下做的规则:
  • 为多个 HTTP 请求/WCF 调用提供一个 DataContext
  • 拥有无限时间的 DataContext(即桌面应用程序的持续时间)
  • 拥有无限数量的被跟踪实体的 DataContext
  • 跨线程使用
  • 关于.net - DataContext 范围最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11281329/

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