我目前正在开发类似于Steamworks的Web应用程序(如果您不知道它是什么,它是用于存储成就,统计等的游戏服务)。
我在开发过程中遇到的主要问题是在部署应用程序后添加了新的游戏数据库。我正在使用LINQ-to-SQL来适当地查询数据库,但是主要问题是,在部署应用程序之后需要创建其他需要查询的数据库时,我不确定如何使用不同的数据库构建查询LINQ。
必须添加新的DataContext,重新编译并重新部署应用程序是不可能的。我想通过插件结构来做这件事,但它不会工作,因为DataContext保存了对列名等的引用。
有没有人对如何克服这个问题有任何建议?我总是可以回到传统的SQL查询,但我不愿意。每个数据库中的所有列名和结构都是相同的,它只是添加新数据库并让应用程序使用它们是主要问题。
答案 0 :(得分:2)
如果每个数据库中的所有列名和结构都相同,那么您可以替换DataContext的构造函数中的连接字符串,如下所示:
旧版本:
public DatabaseDataContext() : base("...your connection string...", mappingSource)
{
OnCreated();
}
新版本:
public DatabaseDataContext() : base(Configuration.ConnectionString, mappingSource)
{
OnCreated();
}
然后将所有connectionstring保存在外部文件/数据库表中,并获取所需的那个或循环遍历它们。 :)
希望我理解你的问题。