sql >> データベース >  >> RDS >> Mysql

MySQLを使用したASP.NETMVC4 EF5

    接続文字列、DbProviderFactory、およびMySqlConnector6.5.4のカスタムDatabaseInitializerを使用して構成をセットアップする必要があります。 ブログの初期化子のコードを含む、EF5とMySqlを再生するための完全なステップ 。以前に尋ねられたASP.Netメンバーシッププロバイダーソリューションが必要な場合: MySQLのASP.NETメンバーシップ/ロールプロバイダー? 完全なEF5MySqlソリューションについても、ここにソリューションを投稿します。

    MySqlコネクタは現在EF5の移行をサポートしておらず、ASP.NETはMySqlではなくMS SQLでSimpleMembership(MVC4のデフォルト)のみをサポートしています。以下の解決策は、コードファーストです。

    手順は次のとおりです。

    1. NuGetからEF5を取得
    2. NuGet(6.5.4)またはMySql(6.6.4)からMySql.DataとMySql.Data.Entityを取得します
    3. MySqlデータプロバイダーを構成する
    4. MySql接続文字列を構成する
    5. カスタムMySqlデータベースイニシャライザーを作成する
    6. カスタムMySqlデータベースイニシャライザーを構成する
    7. 必要に応じて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 または 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>
    

    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とビューを機能させる:

    1. MVC 4 AccountController、AccountModels、アカウントビューフォルダー、および_LoginPartial共有ビューを削除します
    2. 新しいMVC3Webアプリケーションを作成する
    3. MVC 3 AccountController、AccountModels、アカウントビューフォルダー、および_LogOnPartial共有ビューをMVC4アプリケーションにコピーします
    4. @Html.Partial(“_LoginPartial”)を置き換えます @Html.Partial(“_LogOnPartial”)を使用した共有_Layoutビュー


    1. mysql_queryは、int /floaddbタイプの文字列タイプのみを返します

    2. MySQLで次に利用可能なIDを見つける

    3. MySQL:GROUP_CONCAT値を並べ替える

    4. LINQ to MySQL-最良のオプションは何ですか?