Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

ASP.NET MVC 4 EF5 dengan MySQL

Anda perlu mengatur konfigurasi Anda dengan string koneksi, DbProviderFactory dan DatabaseInitializer khusus untuk Konektor MySql 6.5.4. Saya telah merinci langkah lengkap untuk memainkan EF5 dan MySql, termasuk kode untuk inisialisasi di blog saya . Jika Anda memerlukan solusi penyedia keanggotaan ASP.Net, ini telah ditanyakan sebelumnya:Penyedia Keanggotaan/Peran ASP.NET untuk MySQL? Saya akan memposting solusinya di sini juga untuk solusi lengkap EF5 MySql.

Konektor MySql saat ini tidak mendukung migrasi EF 5 dan ASP.NET hanya mendukung SimpleMembership (default MVC4) pada MS SQL bukan MySql. Solusi di bawah ini adalah untuk Code First.

Langkah-langkahnya adalah:

  1. Ambil EF 5 dari NuGet
  2. Ambil MySql.Data dan MySql.Data.Entity dari NuGet (6.5.4) atau MySql (6.6.4)
  3. Konfigurasikan Penyedia Data MySql
  4. Konfigurasikan String Koneksi MySql
  5. Buat Penginisialisasi Database MySql Kustom
  6. Konfigurasi Penginisialisasi Database MySql Kustom
  7. Konfigurasikan keanggotaan ASP.NET jika Anda memerlukannya

DbProvider

<system.data>
 <DbProviderFactories>
  <remove invariant="MySql.Data.MySqlClient"/>
  <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient"
    description=".Net Framework Data Provider for MySQL" 
    type="MySql.Data.MySqlClient.MySqlClientFactory,MySql.Data" />
 </DbProviderFactories>
</system.data>

String Koneksi

<connectionStrings>
  <add name="ConnectionStringName" 
    connectionString="Datasource=hostname;Database=schema_name;uid=username;pwd=Pa$$w0rd;" 
    providerName="MySql.Data.MySqlClient" />
</connectionStrings>

Penginisialisasi Basis Data

Jika Anda menggunakan konektor MySql dari NuGet (6.5.4) maka penginisialisasi khusus diperlukan. Kode tersedia di http:// brice-lambson.blogspot.se/2012/05/using-entity-framework-code-first-with.html atau di http://www.nsilverbullet.net/2012/11/07/6-steps-to-get-entity-framework-5-working-with-mysql-5-5/

Kemudian tambahkan ini ke konfigurasi

<configSections>
  <section name="entityFramework" 
    type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, 
    EntityFramework, Version=5.0.0.0, Culture=neutral, 
    PublicKeyToken=b77a5c561934e089" />
</configSections>
<entityFramework>
  <contexts>
      <context type="Namespace.YourContextName, AssemblyName">
         <databaseInitializer 
           type="Namespace.YourChosenInitializer, AssemblyName">
         </databaseInitializer>
      </context>
    </contexts>
    <defaultConnectionFactory 
      type="MySql.Data.MySqlClient.MySqlClientFactory,MySql.Data" />
</entityFramework>

Keanggotaan ASP.NET

<membership defaultProvider="MySqlMembershipProvider">
  <providers>
    <clear />
    <add name="MySqlMembershipProvider"
         type="MySql.Web.Security.MySQLMembershipProvider,
         MySql.Web, Version=6.5.4.0, PublicKeyToken=c5687fc88969c44d"
     autogenerateschema="true"
     connectionStringName="*NAME_OF_YOUR_CONN_STRING*"
     enablePasswordRetrieval="false"
     enablePasswordReset="true"
     requiresQuestionAndAnswer="false"
     requiresUniqueEmail="false"
     passwordFormat="Hashed"
     maxInvalidPasswordAttempts="5"
     minRequiredPasswordLength="6"
     minRequiredNonalphanumericCharacters="0"
     passwordAttemptWindow="10"
     passwordStrengthRegularExpression=""
     applicationName="/" />
  </providers>
</membership>

Buat AccountController dan Tampilan berfungsi:

  1. Hapus MVC 4 AccountController, AccountModels, folder tampilan Akun dan _LoginPartial tampilan bersama
  2. Buat aplikasi web MVC 3 baru
  3. Salin MVC 3 AccountController, AccountModels, folder tampilan Akun, dan tampilan bersama _LogOnPartial ke dalam aplikasi MVC 4 Anda
  4. Ganti @Html.Partial(“_LoginPartial”) dalam tampilan _Layout bersama dengan @Html.Partial(“_LogOnPartial”)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Geo-Search (Jarak) di PHP/MySQL (Kinerja)

  2. Impor CSV ke MySQL

  3. Menggunakan MySQLi untuk MEMASUKKAN Data ke dalam Basis Data

  4. pengkodean karakter aneh dari data yang disimpan, skrip lama menunjukkan kepada mereka yang baru tidak

  5. Bagaimana saya bisa melakukan FULL OUTER JOIN di MySQL?