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:
- Få fat i EF 5 fra NuGet
- Hent MySql.Data og MySql.Data.Entity fra NuGet (6.5.4) eller MySql (6.6.4)
- Konfigurer en MySql-dataudbyder
- Konfigurer en MySql-forbindelsesstreng
- Opret en brugerdefineret MySql-databaseinitializer
- Konfigurer Custom MySql Database Initializer
- 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:
- Slet MVC 4 AccountController, AccountModels, Account View-mappen og _LoginPartial shared view
- Opret en ny MVC 3-webapplikation
- Kopiér MVC 3 AccountController, AccountModels, Account View-mappen og _LogOnPartial delt visning til din MVC 4-applikation
- Erstat
@Html.Partial(“_LoginPartial”)
i den delte _layoutvisning med@Html.Partial(“_LogOnPartial”)