首頁  >  文章  >  資料庫  >  如何使用 MySQL 連線到 Entity Framework 6 中的動態資料庫名稱?

如何使用 MySQL 連線到 Entity Framework 6 中的動態資料庫名稱?

DDD
DDD原創
2024-11-07 14:36:02316瀏覽

How to Connect to a Dynamic Database Name in Entity Framework 6 with MySQL?

Entity Framework 6 for MySQL 中的動態資料庫連線

為Entity Framework 6 設定MySQL

要建立在Entity Framework 6 和Framework 6 和連接,請依照以下步驟操作:

  • 從MySQL 官方網站安裝MySQL .Net Connector 6.8.1 (Beta)。
  • 參考 Mysql.Data.dll 和 Mysql.Data.Entity.EF6。 Visual Studio 解決方案中的 dll。
  • 將這些檔案複製到專案的 bin 目錄,以便在建置時進行存取。
  • 將連接字串新增至您的Web.config 文件,確保它包含providerName 屬性:
<add name="mysqlCon" connectionString="Server=localhost;Database=dbName;Uid=username;Pwd=password" providerName="MySql.Data.MySqlClient" />
  • 中加入以下提供者資訊: Web.config 檔案中的節點:
<defaultConnectionFactory type="MySql.Data.Entity.MySqlConnectionFactory, MySql.Data.Entity.EF6" />
<providers>
    <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6" />
</providers>
  • 刪除來自 的節點節點(如果您已變更預設值)。

連接到動態資料庫名稱

  • 更新Web.config 中的連接字串以包含資料庫名稱的佔位符:
<add name="mysqlCon" connectionString="Server=localhost;Database={0};Uid=username;Pwd=password" providerName="MySql.Data.MySqlClient" />
  • 修改ApplicationDbContext類別如下:
public class ApplicationDbContext : DbContext
{
    public ApplicationDbContext(string dbName) : base(GetConnectionString(dbName))
    {
    }

    public static string GetConnectionString(string dbName)
    {
        var connString = ConfigurationManager.ConnectionStrings["mysqlCon"].ConnectionString.ToString();
        return String.Format(connString, dbName);
    }
}
  • 透過在末尾新增MigrationsContextFactory類別來處理資料庫遷移您的上下文類別:
public class MigrationsContextFactory : IDbContextFactory<ApplicationDbContext>
{
    public ApplicationDbContext Create()
    {
        return new ApplicationDbContext("developmentdb");
    }
}

這允許您將動態連接字串傳遞到實體框架上下文,使您能夠根據帳戶輕鬆地在多個相同的資料庫模式之間切換。

以上是如何使用 MySQL 連線到 Entity Framework 6 中的動態資料庫名稱?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn