|
|
1
5
LINQ to SQL数据上下文不是线程安全的,应该只在单个线程的上下文中使用。使用singleton模式不仅与标准的linq2sql实践相反,而且如果应用程序遇到任何严重的负载,都会导致严重的问题。 编辑: 为了响应您对using块的限制,请尝试将rolesfor方法实现为扩展方法:
这将允许您从任意位置调用using块内的方法:
编辑2 响应您关于为数据上下文的每个实例打开另一个到SQL Server的连接的意见。创建DataContext不会打开到SQL Server的连接,但每个实际操作都会打开。无论您是创建1个还是4个数据上下文,如果您正在数据库上执行4个操作,则将打开4个sqlconnections。但是,请记住.NET使用的是SQL Server连接池,因此每个操作不需要创建全新的SQL连接,而只需要从连接池中检索现有的连接并重新打开连接。 |
|
|
2
2
Linq to SQL希望您为每个操作创建一个上下文。实际上,只能为执行第一个查询设置数据加载选项,因此,如果要执行加载提示,则必须这样做。但是,当您有一个三层体系结构时,您会遇到这样的问题:来自一个数据上下文的对象不能真正地与来自不同上下文的对象一起工作。 解决这一问题真的很痛苦,所以我们只是针对Web内容的每个请求做了一个上下文,以及针对Windows服务等的线程本地方法。 |
|
3
0
您可能希望管理上下文的生存期,使其范围限定为单个Web请求,并且在该Web请求周期的生存期内只有一个上下文。 谷歌搜索“web范围的objectcontext”或“objectcontext lifetime”(或L2s的dataContext)。 在MVC2中,可以将上下文管理代码放在基本控制器类中。 |
|
|
Rm558 · 是否可以更改XML类型上的LINQPad代码生成? 8 年前 |
|
|
MJK · 规范模式-使用ICollection实现表达式 8 年前 |
|
|
Roland Ebner · 为实体框架多对多关系构建表达式树? 8 年前 |