VS2012 を手に入れたので、EF5 で ASP.NET MVC 4 アプリを開始したいと考えています。
私のホストには MSSQL がないため、MySQL を使用する必要があります。
MySQL を使用する必要があることをアプリに伝えるにはどうすればよいですか? (devart MySQL コネクタまたは mysql.com のいずれかを使用したい)
VS2012 を手に入れたので、EF5 で ASP.NET MVC 4 アプリを開始したいと考えています。
私のホストには MSSQL がないため、MySQL を使用する必要があります。
MySQL を使用する必要があることをアプリに伝えるにはどうすればよいですか? (devart MySQL コネクタまたは mysql.com のいずれかを使用したい)
接続文字列、DbProviderFactory、および MySql Connector 6.5.4 用のカスタム DatabaseInitializer を使用して構成をセットアップする必要があります。初期化子のコードを含む、EF5 と MySql を再生するための完全な手順については、ブログ で詳しく説明しています。ASP.Net メンバーシップ プロバイダー ソリューションが必要な場合は、前に尋ねられました: MySQL の ASP.NET メンバーシップ/ロール プロバイダー? 完全な EF5 MySql ソリューションについても、ここにソリューションを投稿します。
MySql コネクタは現在 EF 5 の移行をサポートしておらず、ASP.NET は MySql ではなく MS SQL の SimpleMembership (MVC4 デフォルト) のみをサポートしています。以下のソリューションは、Code First 用です。
手順は次のとおりです。
<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 またはhttp://www.nsilverbullet.net/2012/11/07/で入手可能6-steps-to-get-entity-framework-5-working-with-mysql-5-5/
次に、これを構成に追加します
<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>
<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 と Views を機能させます。
@Html.Partial(“_LoginPartial”)
共有 _Layout ビューを次のように置き換えます@Html.Partial(“_LogOnPartial”)