我正在使用 Entity Framework 4,并在其中一个基类中为模型创建数据上下文。但是我正在对其进行概要分析,并且每次尝试查询时都会创建上下文,因此我想到将其设置为静态,以便仅创建一次并始终重复使用。

您是否认为这是最好的方法,并且应该始终将数据/对象上下文设置为静态?将其设置为静态有什么缺点吗?数据上下文应该是静态的还是非静态的?欢迎任何想法或建议。

最佳答案

不。它们不应该总是静态的。

实际上,您可能会遇到更多与静态数据上下文有关的问题,而不是与非静态等效上下文有关的问题(例如,来自不同 session 的多个用户从多个线程访问同一上下文)。

我将不进行详细的解释,因为那里有一些非常好的博客文章涵盖了细节:

Linq to SQL DataContext Lifetime Management - Rick Strahl's Web Log(看似不相关,但仍然有用)

Making Entity Framework (v1) work, Part 1: DataContext Lifetime Management(如果您不喜欢Rick的解决方案,则可以选择)

关于c# - 数据上下文应该是静态的吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4081071/

10-12 12:45
查看更多