sql >> Databáze >  >> RDS >> Mysql

ASP.NET MVC 4 EF5 s MySQL

Musíte nastavit svou konfiguraci pomocí připojovacího řetězce, DbProviderFactory a vlastního DatabaseInitializer pro MySql Connector 6.5.4. Podrobně jsem popsal úplný krok pro hraní EF5 a MySql, včetně kódu pro inicializátory na mém blogu . Pokud požadujete řešení poskytovatele členství v ASP.Net, byl již dotazován:Poskytovatelé členství/role ASP.NET pro MySQL? Zde zveřejním řešení také pro kompletní řešení EF5 MySql.

Konektor MySql aktuálně nepodporuje migraci EF 5 a ASP.NET podporuje pouze SimpleMembership (výchozí MVC4) na MS SQL, nikoli MySql. Níže uvedené řešení je pro Code First.

Postup je následující:

  1. Získejte EF 5 z NuGet
  2. Získejte MySql.Data a MySql.Data.Entity z NuGet (6.5.4) nebo MySql (6.6.4)
  3. Nakonfigurujte poskytovatele dat MySql
  4. Nakonfigurujte připojovací řetězec MySql
  5. Vytvořte vlastní inicializátor databáze MySql
  6. Nakonfigurujte vlastní inicializátor databáze MySql
  7. Pokud to vyžadujete, nakonfigurujte členství v ASP.NET

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>

Řetězec připojení

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

Inicializátor databáze

Pokud používáte konektor MySql od NuGet (6.5.4), je vyžadován vlastní inicializátor. Kód je k dispozici na adrese http:// brice-lambson.blogspot.se/2012/05/using-entity-framework-code-first-with.html nebo na http://www.nsilverbullet.net/2012/11/07/6-steps-to-get-entity-framework-5-working-with-mysql-5-5/

Pak to přidejte do konfigurace

<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>

Členství v 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>

Zprovozněte AccountController a Views:

  1. Smažte MVC 4 AccountController, AccountModels, složku zobrazení účtu a sdílené zobrazení _LoginPartial
  2. Vytvořte novou webovou aplikaci MVC 3
  3. Zkopírujte MVC 3 AccountController, AccountModels, složku zobrazení účtu a sdílené zobrazení _LogOnPartial do své aplikace MVC 4
  4. Nahraďte @Html.Partial(“_LoginPartial”) ve sdíleném zobrazení _Layout s @Html.Partial(“_LogOnPartial”)


  1. 7 bezplatných nástrojů pro vytváření diagramů databází pro zaneprázdněné datové lidi

  2. Protokol transakcí serveru SQL, část 2:Architektura protokolů

  3. MyISAM versus InnoDB

  4. načíst název tabulky ze sloupce pro klauzuli from