Mysql
 sql >> база данни >  >> RDS >> Mysql

ASP.NET MVC 4 EF5 с MySQL

Трябва да настроите конфигурацията си с низ за връзка, DbProviderFactory и персонализиран DatabaseInitializer за MySql конектор 6.5.4. Разписах подробно пълна стъпка за възпроизвеждане на EF5 и MySql, включително код за инициализаторите в моя блог . Ако се нуждаете от решение на доставчик на членство в ASP.Net, то беше запитано преди:Доставчици на членство/роли в ASP.NET за MySQL? Тук ще публикувам решението и за цялостно решение за EF5 MySql.

MySql конекторът понастоящем не поддържа миграция на EF 5 и ASP.NET поддържа само SimpleMembership (MVC4 по подразбиране) на MS SQL, а не на MySql. Решението по-долу е за Code First.

Стъпките са:

  1. Вземете EF 5 от NuGet
  2. Вземете MySql.Data и MySql.Data.Entity от NuGet (6.5.4) или MySql (6.6.4)
  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>

Инициализатор на база данни

Ако използвате MySql конектор от NuGet (6.5.4), тогава е необходим персонализиран инициализатор. Кодът е наличен на 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 и Views да работят:

  1. Изтрийте MVC 4 AccountController, AccountModels, папката за изглед на акаунт и _LoginPartial споделен изглед
  2. Създайте ново MVC 3 уеб приложение
  3. Копирайте MVC 3 AccountController, AccountModels, папката за изглед на акаунт и споделения изглед _LogOnPartial във вашето приложение MVC 4
  4. Заменете @Html.Partial(“_LoginPartial”) в споделения изглед _Layout с @Html.Partial(“_LogOnPartial”)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ефективен начин за симулиране на пълно външно присъединяване в MySQL?

  2. Внедряване и проектиране на архитектура за система за уведомяване с помощта на socket.io node.js и входящи съобщения

  3. КРЪСНО/ВЪНШНО ПРИЛАГАНЕ в MySQL

  4. MySQL:Разбиране на таблици за картографиране

  5. Bash скрипт за вмъкване на стойности в MySQL