與 Entity Framework 6 的動態 MySQL 連線
使用 Entity Framework 6 連接到動態資料庫名稱涉及某些注意事項。
取得 MySQL 相容性
<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); }
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中文網其他相關文章!