如何與 Entity Framework 6 建立動態 MySQL 連線?

Susan Sarandon
發布: 2024-11-07 20:40:03
原創
349 人瀏覽過

How to Establish a Dynamic MySQL Connection with Entity Framework 6?

與 Entity Framework 6 的動態 MySQL 連線

使用 Entity Framework 6 連接到動態資料庫名稱涉及某些注意事項。

取得 MySQL 相容性

  • 安裝 MySQL .Net Connector 6.8.1。
  • 參考 Mysql.Data.dll 和 Mysql.Data.Entity.EF6。 dll.
  • 在Web.config 中包含連接字符串和提供程序:
<connectionStrings>
  <add name="mysqlCon" connectionString="Server=localhost;Database={0};Uid=username;Pwd=password" providerName="MySql.Data.MySqlClient" />
</connectionStrings>

<entityFramework>
  <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>
</entityFramework>
登入後複製

動態數據庫連接

  • 建立用於使用資料庫名稱佔位符建立連接字串的輔助方法:
public static string GetConnectionString(string dbName)
{
    var connString = ConfigurationManager.ConnectionStrings["mysqlCon"].ConnectionString.ToString();
    return String.Format(connString, dbName);
}
登入後複製
  • 修改ApplicationDbContext 類別:
public class ApplicationDbContext : DbContext
{
    public ApplicationDbContext(string dbName) : base(GetConnectionString(dbName))
    {
    }
}
登入後複製
  • 用法:
ApplicationDbContext db = new ApplicationDbContext("dbName");
登入後複製

注意:如果使用資料庫遷移,請新增工廠類別以在種子方法中傳遞資料庫名稱:

public class MigrationsContextFactory : IDbContextFactory<ApplicationDbContext>
{
    public ApplicationDbContext Create()
    {
        return new ApplicationDbContext("developmentdb");
    }
}
登入後複製

以上是如何與 Entity Framework 6 建立動態 MySQL 連線?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!