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

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

DDD
發布: 2024-11-07 14:36:02
原創
423 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板