1

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

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

4

2 回答 2

2

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

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

于 2009-02-24T16:11:39.330 回答
2

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

于 2009-02-24T16:12:46.940 回答