接続文字列、DbProviderFactory、およびMySqlConnector6.5.4のカスタムDatabaseInitializerを使用して構成をセットアップする必要があります。 ブログの初期化子のコードを含む、EF5とMySqlを再生するための完全なステップ 。以前に尋ねられたASP.Netメンバーシッププロバイダーソリューションが必要な場合: MySQLのASP.NETメンバーシップ/ロールプロバイダー? 完全なEF5MySqlソリューションについても、ここにソリューションを投稿します。
MySqlコネクタは現在EF5の移行をサポートしておらず、ASP.NETはMySqlではなくMS SQLでSimpleMembership(MVC4のデフォルト)のみをサポートしています。以下の解決策は、コードファーストです。
手順は次のとおりです。
- NuGetからEF5を取得
- NuGet(6.5.4)またはMySql(6.6.4)からMySql.DataとMySql.Data.Entityを取得します
- MySqlデータプロバイダーを構成する
- MySql接続文字列を構成する
- カスタムMySqlデータベースイニシャライザーを作成する
- カスタムMySqlデータベースイニシャライザーを構成する
- 必要に応じて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>
接続文字列
<connectionStrings>
<add name="ConnectionStringName"
connectionString="Datasource=hostname;Database=schema_name;uid=username;pwd=Pa$$w0rd;"
providerName="MySql.Data.MySqlClient" />
</connectionStrings>
データベースイニシャライザー
NuGet(6.5.4)のMySqlコネクタを使用している場合は、カスタム初期化子が必要です。 http://で入手可能なコードbrice-lambson.blogspot.se/2012/05/using-entity-framework-code-first-with.html
または
次に、これを構成に追加します
<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メンバーシップ
<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>
AccountControllerとビューを機能させる:
- MVC 4 AccountController、AccountModels、アカウントビューフォルダー、および_LoginPartial共有ビューを削除します
- 新しいMVC3Webアプリケーションを作成する
- MVC 3 AccountController、AccountModels、アカウントビューフォルダー、および_LogOnPartial共有ビューをMVC4アプリケーションにコピーします
-
@Html.Partial(“_LoginPartial”)
を置き換えます@Html.Partial(“_LogOnPartial”)
を使用した共有_Layoutビュー