sql >> Database teknologi >  >> RDS >> Mysql

ASP.NET MVC 4 EF5 med MySQL

Du skal opsætte din konfiguration med en forbindelsesstreng, DbProviderFactory og en brugerdefineret DatabaseInitializer til MySql Connector 6.5.4. Jeg har beskrevet fuldt trin til at få EF5 og MySql til at spille, inklusive kode til initialiseringerne på min blog . Hvis du har brug for ASP.Net-medlemskabsudbyderløsning, er det blevet spurgt før:ASP.NET-medlemskab/rolleudbydere til MySQL? Jeg vil poste løsningen her også for en komplet EF5 MySql løsning.

MySql-stikket understøtter i øjeblikket ikke EF 5-migrering, og ASP.NET understøtter kun SimpleMembership (MVC4-standard) på MS SQL, ikke MySql. Løsningen nedenfor er for Code First.

Trinene er:

  1. Få fat i EF 5 fra NuGet
  2. Hent MySql.Data og MySql.Data.Entity fra NuGet (6.5.4) eller MySql (6.6.4)
  3. Konfigurer en MySql-dataudbyder
  4. Konfigurer en MySql-forbindelsesstreng
  5. Opret en brugerdefineret MySql-databaseinitializer
  6. Konfigurer Custom MySql Database Initializer
  7. Konfigurer ASP.NET-medlemskab, hvis du har brug for det

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>

Forbindelsesstreng

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

Database-initializer

Hvis du bruger MySql-stik fra NuGet (6.5.4), så er en brugerdefineret initialisering påkrævet. Kode tilgængelig på http:// brice-lambson.blogspot.se/2012/05/using-entity-framework-code-first-with.html eller på http://www.nsilverbullet.net/2012/11/07/6-steps-to-get-entity-framework-5-working-with-mysql-5-5/

Tilføj derefter dette til konfigurationen

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

ASP.NET-medlemskab

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

Få AccountController og visninger til at fungere:

  1. Slet MVC 4 AccountController, AccountModels, Account View-mappen og _LoginPartial shared view
  2. Opret en ny MVC 3-webapplikation
  3. Kopiér MVC 3 AccountController, AccountModels, Account View-mappen og _LogOnPartial delt visning til din MVC 4-applikation
  4. Erstat @Html.Partial(“_LoginPartial”) i den delte _layoutvisning med @Html.Partial(“_LogOnPartial”)


  1. Kan du bruge auto-increment i MySql uden at det er den primære nøgle

  2. Hvordan opretter man en procedure i Oracle SQL Developer?

  3. MySQL Update Indre Join-tabeller forespørgsel

  4. Brug af CONTINUE In Loops for at genoptage kontrol i Oracle