zoukankan      html  css  js  c++  java
  • ef(EntityFramework)动态传递数据库连接字符串

    1.使用entityConnectionStringBuilder 创建连接字符串

    public static string GetConnStr(string host, string catalog, string user, string pass, bool winAuth=false)
            {
                SqlConnectionStringBuilder sqlBuilder = new SqlConnectionStringBuilder
                {
                    DataSource = host,
                    InitialCatalog = catalog,
                    PersistSecurityInfo = true,
                    IntegratedSecurity = winAuth,
                    MultipleActiveResultSets = true,
    
                    UserID = user,
                    Password = pass,
                };
    
                // assumes a connectionString name in .config of MyDbEntities
                var entityConnectionStringBuilder = new EntityConnectionStringBuilder
                {
                    Provider = "System.Data.SqlClient",
                    ProviderConnectionString = sqlBuilder.ConnectionString,
                    Metadata = "res://*/FaceDB.csdl|res://*/FaceDB.ssdl|res://*/FaceDB.msl",  //此处需修改为正确的字符(观察并复制web.config中的即可)
                };
    
                return  entityConnectionStringBuilder.ConnectionString;
            }

    将此方法返回的字符串传递进一个参数的构造函数实例化datacontext:参考http://www.voidcn.com/article/p-fllvvzft-btb.html

    FaceEntities dc = new FaceEntities(GetConnStr(xxxx,xxx,xx,xx)); 

    2.写死字符串模板并动态替换

    public static string connTemplate = "metadata=res://*/FaceDB.csdl|res://*/FaceDB.ssdl|res://*/FaceDB.msl;provider=System.Data.SqlClient;provider connection string="Data Source = {{DBIp}}; Initial Catalog ={{DBName}}; Integrated Security = False; Persist Security Info=True;User ID = {{DBUser}}; Password={{DBPwd}};MultipleActiveResultSets=True"";

    也需注意metadata里的值修改.(观察并复制web.config中的即可)

     var connString = connTemplate.Replace("{{DBIp}}","192.168.x.x").Replace("{{DBName}}", "FaceDB").Replace("{{DBUser}}","sa").Replace("{{DBPwd}}","sa");

    FaceEntities dc = new FaceEntities(connString);

    From:https://www.cnblogs.com/xuejianxiyang/p/12175719.html

  • 相关阅读:
    Linux下安装confluence汉化破解版
    某种可以解决一切问题的方法
    普通平衡树(treap)
    文艺平衡树(splay模板)
    [CQOI2015]任务查询系统
    [NOIP2016]天天爱跑步
    NOI2018_Day1_T1_归程
    Picture
    bzoj3524 Couriers
    bzoj2588 counting on a tree
  • 原文地址:https://www.cnblogs.com/xuejianxiyang/p/12175719.html
Copyright © 2011-2022 走看看