Bagaimana untuk Mencapai Sambungan Pangkalan Data Dinamik dengan Rangka Kerja Entiti 6 untuk MySQL?

Barbara Streisand
Lepaskan: 2024-11-11 04:14:03
asal
223 orang telah melayarinya

How to Achieve Dynamic Database Connection with Entity Framework 6 for MySQL?

Sambungan Pangkalan Data Dinamik dengan Rangka Kerja Entiti 6 untuk MySQL

Menyambungkan berbilang skema secara dinamik dengan Rangka Kerja Entiti 6 (EF6) boleh mencabar. Artikel ini menyediakan penyelesaian yang komprehensif untuk mewujudkan sambungan dinamik ke pangkalan data MySQL dan lulus rentetan sambungan berdasarkan nama pangkalan data yang dipilih.

Menyediakan MySQL untuk EF6

Mulakan dengan memasang MySQL .Net Connector 6.8.1 (Beta) dan merujuk perpustakaan dalam penyelesaian Visual Studio anda. Tambahkan rentetan sambungan dan maklumat pembekal pada fail 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>
Salin selepas log masuk

Mencipta Sambungan Pangkalan Data Dinamik

Seterusnya, ubah suai kelas ApplicationDbContext:

public class ApplicationDbContext: DbContext
{
    public ApplicationDbContext(string dbName) : base(GetConnectionString(dbName))
    {
    }

    public static string GetConnectionString(string dbName)
    {
        // Server=localhost;Database={0};Uid=username;Pwd=password
        var connString = 
            ConfigurationManager.ConnectionStrings["mysqlCon"].ConnectionString.ToString();

        return String.Format(connString, dbName);
    }
}
Salin selepas log masuk

Ini membolehkan menghantar nama pangkalan data secara dinamik sebagai parameter apabila mencipta ApplicationDbContext baharu instance.

Mengendalikan Migrasi Pangkalan Data

Untuk migrasi, buat kelas MigrationContextFactory:

public class MigrationsContextFactory : IDbContextFactory<ApplicationDbContext>
{
    public ApplicationDbContext Create()
    {
        return new ApplicationDbContext("developmentdb");
    }
}
Salin selepas log masuk

Kilang ini menentukan pangkalan data lalai untuk migrasi, memastikan migrasi menyasarkan yang betul skema.

Kesimpulan

Menggunakan pendekatan ini membolehkan pemilihan dinamik skema pangkalan data dalam Rangka Kerja Entiti 6. Dengan mengubah suai kilang sambungan lalai dan mencipta kaedah pembantu untuk menjana secara dinamik rentetan sambungan, adalah mungkin untuk menyambung kepada berbilang skema dengan cekap.

Atas ialah kandungan terperinci Bagaimana untuk Mencapai Sambungan Pangkalan Data Dinamik dengan Rangka Kerja Entiti 6 untuk MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan