我们如何更改基于Linq的WebApp的基础数据库?
例如:
当我们发布我们的Web应用程序时,比如说要从生产中发布,如果使用ADO.NET, 它就像修改 web.config 中的连接字符串一样简单,指向正在使用的实时数据库。数据库几乎相同,其他数据存储..
使用LINQ时,我们如何更改unerLying数据库?
注意; 使用c#
感谢
答案 0 :(得分:4)
你仍然可以做同样的事; DataContext
(包括SqlMetal生成的)包括接受连接字符串的构造函数重载。只需从ConfigurationManager
(或其他)中获取所需的字符串并将其传入。
实际上,如果您不介意直接攻击DBML,它确实支持直接从ConfigurationManager
读取;问题是IDE设计师讨厌这个问题,并且每次看到它时都会破坏它。这是一种耻辱(discussed here)。
答案 1 :(得分:1)
我强烈建议您在应用中使用连接字符串重载来实例化数据上下文。我创建了一个辅助组件:
public static class DCHelper
{
public static MyDataContext Create()
{
return new MyDataContext(ConfigurationManager.ConnectionStrings["CS"].ConnectionString);
}
}
这样,我只有一个地方可以改变实例化上下文的方式,或者我可以更改配置文件来切换数据库。或者,create方法可以采取一些输入来确定连接。
答案 2 :(得分:-1)
如果您只是想知道如何移动connection string to the Web.Config Rick Strahl在他的博客上有example。
如果要更改为其他类型的数据库...您可以保存大多数(如果不是所有查询)。但是您需要更改提供者/存储库。 LINQ 2 SQL目前只支持MSSQL(这就是它的真正意义所在。)
如果您需要更多灵活性,请查看LINQ to Entities。