您需要使用连接字符串DbProviderFactory和MySql Connector 6.5.4的自定义DatabaseInitializer设置您的配置。我详细说明了
full step for getting EF5 and MySql to play, including code for the initializers on my blog.如果您需要ASP.Net会员提供程序解决方案,那么我将在
ASP.NET Membership/Role providers for MySQL?发布解决方案,同时提供完整的EF5 MySql解决方案。
MySql连接器当前不支持EF 5迁移,ASP.NET仅支持MS SQL不是MySql的SimpleMembership(MVC4默认值)。以下解决方案适用于Code First。
步骤是:
从NuGet抓住EF 5
>从NuGet(6.5.4)或MySql(6.6.4)中抓取MySql.Data和MySql.Data.Entity
>配置MySql数据提供程序
>配置MySql连接字符串
>创建自定义MySql数据库初始化程序
>配置自定义MySql数据库初始化程序
>如果需要,请配置ASP.NET成员资格
DbProvider
description=".Net Framework Data Provider for MySQL"
type="MySql.Data.MySqlClient.MySqlClientFactory,MySql.Data" />
连接字符串
connectionString="Datasource=hostname;Database=schema_name;uid=username;pwd=Pa$$w0rd;"
providerName="MySql.Data.MySqlClient" />
数据库初始化程序
然后将其添加到配置中
type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection,
EntityFramework, Version=5.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089" />
type="Namespace.YourChosenInitializer, AssemblyName">
type="MySql.Data.MySqlClient.MySqlClientFactory,MySql.Data" />
ASP.NET成员资格
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="/" />
获取AccountController和Views工作:
>删除MVC 4 AccountController,AccountModels,帐户视图文件夹和_LoginPartial共享视图>创建一个新的MVC 3 Web应用程序>将MVC 3 AccountController,AccountModels,帐户视图文件夹和_LogOnPartial共享视图复制到您的MVC 4应用程序中>在@ Html.Partial(“_ LogOnPartial”)的共享_Layout视图中替换@ Html.Partial(“_ LoginPartial”)