代码之家  ›  专栏  ›  技术社区  ›  Jean-Francois

如何在实体框架4中生成动态连接字符串?

  •  2
  • Jean-Francois  · 技术社区  · 14 年前

    是否可以选择将与实体框架一起使用的特定数据库? 此时,我使用web.config中的连接字符串作为数据库身份验证。

    我有12个数据库,每个数据库都有相同的结构和存储过程。

    每个客户机都有一个数据库。当客户机想要登录系统时,他需要从一个列表框中选择他的数据库名称。

    我想创建一个动态连接字符串,其中包含客户机选择的数据库名称。

    1 回复  |  直到 14 年前
        1
  •  2
  •   p.campbell    14 年前

    一种方法可能是在DropDownlist中加载所有12个选项。

    当用户做出选择时,将该密钥放入 Session .

     Session["UserChosenConnString"] = Request.Form("ddMyDatabaseTarget");
    

    然后在运行时将该conn字符串提供给repo/data层。

     string connString = Session["UserChosenConnString"].ToString();
     var db = new CustomerEntities(connString);
    

    有很多机会可以改善这一点:

    • 将12个选项存储在 KeyValuePair<int,string> ,并且只将键整数存储在 会议 . 然后在访问数据库时查找该值。