簡體   English   中英

c# - 在運行時更改 App.Config 后實體框架 ConnectionString 不會更新

[英]c# - Entity Framework ConnectionString won't update after changing App.Config in runtime

我正在開發一個 WPF 應用程序,它依賴於實體框架進行數據訪問。 第一次安裝時,我需要根據用戶輸入創建一個新的連接字符串,然后根據它更新 App.Config。

問題是:更新 App.Config 文件后,Entity Framework 未檢測到更改並使用舊的啟動時 ConnectionString 來實例化 DbContext。

如何在運行時更新實體框架的 ConnectionString 設置?

實體框架緩存連接字符串,沒有強制刷新的方法。

這篇文章:在DbContext構造函數中給出的連接字符串沒有被緩存,那么你可以使用它作為解決方法:

public class MyContext : DbContext {
    public MyContext()
        : base(ConfigurationManager.ConnectionStrings["MyConnection"].ConnectionString)
    {
    }
}

今天有同樣的問題。 連接字符串存儲在 obj 文件夾中緩存的 App.Config 文件中。

解決方法:刪除obj文件夾。

我有同樣的錯誤。 我的新連接字符串缺少“初始目錄=”

全球.cs

public class Global
   {
    public static string ConnectionString=String.Empty;
   }

在 App.config 中保存連接字符串后,第一次將連接字符串臨時存儲在 Global.cs 中。

數據庫上下文.cs

 public class DBContext: DbContext
    {
        public DbSet<User> UserInfo { get; set; }   
        
        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            optionsBuilder.UseSqlServer(
                String.IsNullOrEmpty(Global.ConnectionString) ? ConfigurationManager.ConnectionStrings["your_connectionstring"].ConnectionString
                : Global.ConnectionString
                );
        }

    } 

首先,您已經在 App.config 中定義了連接字符串。 希望你喜歡!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM