最好创建一个包含查询和上下文构造函数的类作为上下文的Func和TEuity的IQueryable的Func来解决上下文生存期问题吗?
实施例: 在您的数据层上,如果您使用"使用"每个方法使用一个上下文声明,您无法返回IQueryables,因为在上下文发布后这不会有效,这使您可以使用:
答案 0 :(得分:1)
据我所知,上下文的设计是根据需要创建和重新创建的,而不是静态保存在内存中(尽管我也是这样做的)。我发现在我的类中创建一个上下文(比如MVC应用程序的控制器类,甚至视图模型类)通常都很好,然后让所有方法都使用它。
但是,如果您要为所有用户缓存大量静态数据,我会将其静态保存在内存中。正如您所提到的,您只需要考虑线程。如果您只是在阅读,则可以创建只读锁来访问此数据(而不是C#lock{}
)。
有关静态的详细信息:https://msdn.microsoft.com/en-us/library/system.threading.readerwriterlock(v=vs.110).aspx
在大多数情况下,你真的不需要处理它们 - 这是设计的 https://stackoverflow.com/a/389871/1236397