DLL中的抽象DataContext

时间:2013-06-10 21:42:31

标签: c# linq-to-sql asp.net-4.0

我有一个数据库架构,我正在尝试围绕它创建一个“基础”库。我有几个使用相同基表的其他应用程序,我想将代码通用化。

所以我想我有两个问题。首先,我正在使用C#/ Asp.net 4.0和Linq2Sql,因为我的数据库设计已经存在了一段时间,我没有时间将其转换为实体框架。

我创建了一个带有基本功能的.dbml文件,该文件提供了一个Linq数据上下文,我们称之为具有所有公共表的BaseContext。然后我在部分类中有额外的代码;这是我试图共同的代码。然后我将BaseContext编译成DLL。

然后我有一个应用程序,它将扩展模式并创建一个从BaseContext派生的新DataContext。这是我的计划,但1)继承DataContexts如何工作?

其次,我遇到跨应用程序的连接字符串问题。我不需要运行DLL中的代码,但我需要能够设置派生应用程序的连接字符串,以便公共代码有用。 2)有没有办法在dll中覆盖连接字符串?

1 个答案:

答案 0 :(得分:0)

  

如何继承DataContexts?

就像继承其他任何东西一样。没有什么不同。

  

有没有办法在dll中覆盖连接字符串?

类库通常不包含其连接字符串;主持人进程。主机进程通常是客户端应用程序,或者更好的是服务(WCF等)。习惯上,连接字符串放在主机配置文件中。

注意:类库(DLL)不包含连接字符串的原因是因为他们不知道它们在哪个上下文(程序)上运行。在类库代码中,它仍然可以访问ConfigurationManager以获取连接字符串。主机进程只需要确保连接字符串定义为app.config。