2010-05-31 59 views
2

我目前正在研究一个类似于Steamworks的Web应用程序(如果你不知道它是什么,它是一个存储成就,统计等游戏的服务)。C#LINQ&部署后添加数据库

我在开发中遇到的主要问题是在部署应用程序后为游戏添加新数据库。我正在使用LINQ-to-SQL来适当地查询数据库,但主要问题是,在部署应用程序后需要查询额外数据库时,我不确定如何使用不同数据库结构查询LINQ。

不得不添加一个新的DataContext,重新编译并重新部署应用程序是不成问题的。我想通过一个插件结构做到这一点,但它不会工作,鉴于DataContext持有对列名称的引用等。

有没有人有任何建议如何克服这一点?我总是可以回到传统的SQL查询,但我不想。每个数据库中的所有列名和结构都是相同的,只是添加新数据库并让应用程序使用它们是主要问题。

回答

2

如果跨越每个数据库中的所有列名和结构是相同的,那么也许你可以替换的DataContext的构造连接字符串,如下图所示:

旧版本:

public DatabaseDataContext() : base("...your connection string...", mappingSource) 
{ 
    OnCreated(); 
} 

新版本:

public DatabaseDataContext() : base(Configuration.ConnectionString, mappingSource) 
{ 
    OnCreated(); 
} 

然后将所有连接字符串保存在外部文件/数据库表中,并获取您需要的或通过它们循环。 :)

希望我明白你的问题。

+0

感谢您的快速响应,我会给它一个。这似乎是我正在寻找的。 – 2010-05-31 14:13:15