【问题标题】:In a WebService with linq-To-sql can the datacontext be a static field?在具有 linq-To-sql 的 WebService 中,数据上下文可以是静态字段吗?
【发布时间】:2009-02-24 16:07:39
【问题描述】:

我正在创建一个网络服务,它将使用 Linq-To-Sql 来执行仅选择查询。在这方面,是否可以接受将 DataContext 作为静态字段/属性,因为操作永远不会是修改数据库或跟踪对象更改的操作?

如果不是,有哪些替代方法是合适的?

【问题讨论】:

    标签: linq-to-sql datacontext


    【解决方案1】:

    我会在每个方法调用上重新创建数据上下文,并包装在 using 块中。这将有助于确保由于操作而创建的对象得到处置并减少内存占用。由于对象被序列化以被发送回,因此不需要将数据上下文保持得比调用所需的时间长。数据上下文本身并不是一个特别重的对象,不应避免根据需要重新创建它。这就是它的真正用途——作为一个工作对象单元。

    【讨论】:

      【解决方案2】:

      DataContext 不是线程安全的,因此将其存储在静态中不是一个好主意。

      DataContext 的寿命并不长,只需在请求处理期间对其进行实例化即可。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-09-21
        • 1970-01-01
        • 2011-01-09
        • 1970-01-01
        • 1970-01-01
        • 2011-04-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多