第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

EF Core 3.0 手動(dòng)設(shè)置連接字符串

EF Core 3.0 手動(dòng)設(shè)置連接字符串

C#
四季花海 2022-08-20 17:00:09
我正在開發(fā)一個(gè)帶有.NET Core和EF Core的控制臺(tái)應(yīng)用程序(兩者都是v3.0);我需要使用從另一個(gè)類生成的字符串啟動(dòng)我的DbContext。DbContext 文件public Arta_LuniaDBContext() { }public Arta_LuniaDBContext(DbContextOptions<Arta_LuniaDBContext> options) : base(options) { }protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder){   optionsBuilder.UseSqlServer(DataServices.ConnectionString);}數(shù)據(jù)服務(wù)類public static string ConnectionString { get { return GetConnectionData(); } }private static string GetConnectionData(){   /// Sets the Server name, Database, UserId and Password.   string Server, Database, UserId, Password;   /// Sets the separator.   string Separator = ";";   /// Connection string [internal].   string ArtaConn = null;   /// Loads Settings.xml   XmlDocument xDoc = new XmlDocument();   xDoc.Load("Settings.xml");   /// Gets the XmlNode: DataSource   XmlNodeList xSource = xDoc.GetElementsByTagName("DataSource");   for (int i = 0; i < xSource.Count; i++)   {      /// Sets the Server name.      Server = "Server=" + xSource[i].Attributes["Server"].Value + Separator;      /// Sets the Database.      Database = "Database=" + xSource[i].Attributes["Database"].Value + Separator;      /// Sets the User id.   UserId = "User id=" + xSource[i].Attributes["UserId"].Value + Separator;      /// Sets the Password.      Password = "Password=" + xSource[i].Attributes["Password"].Value + Separator;      /// Builds the connection string.      ArtaConn = Server + Database + UserId + Password;      Colorful.Console.WriteLine(ArtaConn, System.Drawing.Color.Yellow);      // I'm using this line to test the output.   }   /// Returns~   return ArtaConn;}
查看完整描述

2 回答

?
素胚勾勒不出你

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超9個(gè)贊

使用正確的工具完成工作 - SqlConnectionStringBuilder 類

生成器將轉(zhuǎn)義反斜杠并為 Sql Server 連接構(gòu)建正確的連接字符串。


var builder = new SqlConnectionStringBuilder

{

    DataSource = @"IP_ADDRESS\INSTANCE",

    InitialCatalog = "DbName",

    UserID = "MyUserId",

    Password = "MyPassword"

};


var connectionString = builder.ConnectionString;


// Use connection string

optionsBuilder.UseSqlServer(connectionString );

因此,您的方法可以如下所示:


private SqlConnectionStringBuilder BuilderFromElement(XElement source)

{

    return new SqlConnectionStringBuilder

    {

        DataSource = source.Attribute("Server")?.Value,

        InitialCatalog = source.Attribute("Database")?.Value,

        UserID = source.Attribute("UserID")?.Value,

        Password = source.Attribute("Password")?.Value

    };

}


private string GetConnectionString()

{

    var settings = XDocument.Load("Settings.xml");

    var allConnectionStrings = 

        settings.Descendants("DataSource")

                .Select(BuilderFromElement)

                .Select(builder => builder.ConnectionString)

                

    return allConnectionStrings.FirstOrDefault();

}


查看完整回答
反對(duì) 回復(fù) 2022-08-20
?
慕森王

TA貢獻(xiàn)1777條經(jīng)驗(yàn) 獲得超3個(gè)贊

查看 xml 文件中反斜杠的用法。


在某些上下文中,可以是轉(zhuǎn)義的 \,作為文字,它是 2 個(gè)斜杠。\\


此代碼說明了這一點(diǎn):這些字符串不相等。


        String s= "Server=IP\\INSTANCE_NAME;Database=db;User id=User ;Password=pwd;";

    String s2= @"Server=IP\\INSTANCE_NAME;Database=db;User id=User ;Password=pwd;";


    Console.WriteLine(s2== s);

如果您嘗試使用localhost進(jìn)行此操作,它是否按照您的期望方式工作?如果是這樣:罪魁禍?zhǔn)资?.


您還可以查看這是否有效。


optionsBuilder.UseSqlServer(@"Server=Server=IP\\INSTANCE_NAME;Database=DB;User id=User ;Password=pwd;");

希望這有幫助!


查看完整回答
反對(duì) 回復(fù) 2022-08-20
  • 2 回答
  • 0 關(guān)注
  • 365 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)