我需要在c#中编写一个库(dll)来正确处理DataContext的多个实例。
必须为全局使用(web,console等)编写此库。
在我的旧数据库库中,我创建了一个带有私有构造函数和静态属性的类型,以简化我的项目
一个例子:
public class DbClass
{
private DbClass() { }
private static DbClass instance;
public static DbClass Instance
{
get
{
if (DbClass.instance == null)
DbClass.instance = new DbClass();
return DbClass.instance;
}
}
}
使用示例:
public void Update()
{
DbClass.Instance.ExecuteSql("UPDATE Users SET IsUpdated = 'True'");
}
此类仅将一个字符串(connectionString)存储到其静态实例中:Web上下文中没有问题,控制台上下文中没有问题。
但是我需要通过扩展DataContext类型将这个概念重用于linq-to-sql。
有什么想法吗?
修改
根据格兰特托马斯的第一条评论,我认为我的要求没有得到解释,也许我的英语不好帮助..
我需要编写.Net库(dll)来通过静态DataContext属性管理数据库数据:
此属性必须检测当前的Context(web,windows MTA Thread,windows STA Thread)
并创建/重用DataContext的实例,而不会抛出ThreadExceptions或其他冲突。
一种DataContextFactory ......
赞赏任何意见/想法
答案 0 :(得分:1)
好吧,如果我给你最好的答案你也可以选择我......
如果我是你,不会去那里。阅读http://www.west-wind.com/weblog/posts/2008/Feb/05/Linq-to-SQL-DataContext-Lifetime-Management答案 1 :(得分:0)
您可以通过在同一命名空间下创建另一个文件来轻松扩展DataContext:
namespace MyDataContextNamespace {
public partial class MyDataContext {
}
}
然后你可以从那里公开你的单身人士。