小编典典
您需要使用连接字符串DbProviderFactory和用于MySql Connector
6.5.4的自定义DatabaseInitializer来设置配置。我已经详细介绍了让EF5和MySql发挥作用的完整步骤,包括我的Blog上用于初始化程序的代码。如果您需要ASP.Net成员资格提供程序解决方案,请先询问以下内容:MySQL的ASP.NET成员资格/角色提供程序?我还将在此处发布解决方案,以获取完整的EF5 MySql解决方案。
MySql连接器当前不支持EF 5迁移,并且ASP.NET仅在MS
SQL上支持SimpleMembership(默认为MVC4),而不支持MySql。以下解决方案适用于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" />
数据库初始化器
如果您使用的是NuGet(6.5.4)中的MySql连接器,则需要自定义初始化程序。可以在http://brice-
lambson.blogspot.se/2012/05/using-entity-framework-code-first-
with.html
或http://www.nsilverbullet.net/2012/11/07/获得的代码6个步骤获取实体框架5与mysql
5-5一起工作/
然后将此添加到配置
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和View运行:
删除MVC 4 AccountController,AccountModels,Account视图文件夹和_LoginPartial共享视图
创建一个新的MVC 3 Web应用程序
将MVC 3 AccountController,AccountModels,Account视图文件夹和_LogOnPartial共享视图复制到您的MVC 4应用程序中
@Html.Partial(“_LoginPartial”)在共享的_Layout视图中替换为@Html.Partial(“_LogOnPartial”)
2020-05-17