代码之家  ›  专栏  ›  技术社区  ›  Asad

linqtosql中的切换数据库

  •  3
  • Asad  · 技术社区  · 15 年前

    如何更改基于LINQ的webapp的底层数据库?

    例如:

    当我们发布Web应用程序时,比如说使用ado.net从生产环境中发布, 它和修改一样简单 连接字符串 在里面 Web.CONFIG 指向正在使用的实时数据库。数据库几乎是相同的,存储了其他数据。

    在使用LINQ时,我们如何更改未旋转的数据库?

    注意事项; 使用C语言

    谢谢

    3 回复  |  直到 15 年前
        1
  •  1
  •   Brian Mains    15 年前

    我强烈建议在您的应用程序中使用连接字符串重载来实例化数据上下文。我创建了一个助手组件,它可以:

    public static class DCHelper
    {
      public static MyDataContext Create()
      {
         return new MyDataContext(ConfigurationManager.ConnectionStrings["CS"].ConnectionString);
      }
    }
    

    这样,我只有一个地方可以更改上下文的实例化方式,或者我可以更改配置文件来切换数据库。或者,create方法可以接受一些输入来确定连接。

        2
  •  4
  •   Marc Gravell    15 年前

    你仍然应该能够做到这一点; DataContext (包括sqlmetal生成的)包括接受连接字符串的构造函数重载。只需从中获取所需的字符串 ConfigurationManager (或者别的什么)然后传进去。

    实际上,如果您不介意直接对DBML进行黑客攻击,它实际上支持从 配置管理器 直接地 ;问题是,IDE设计者讨厌这个,每次看到它都会破坏它。真可惜( discussed here )

        3
  •  -1
  •   Matthew Whited    15 年前

    如果你只是想知道如何移动 connection string to the Web.Config Rick Strahl有一个 example 在他的博客上。

    如果要更改为其他类型的数据库…您可能可以保存大部分(如果不是全部查询的话),但是您需要更改提供程序/存储库。 LINQ 2 SQL 此时只支持MSSQL(这就是它真正要做的)。

    退房 LINQ to Entities 如果你需要更多的灵活性。