Mysql
 sql >> Baza danych >  >> RDS >> Mysql

ASP.NET MVC 4 EF5 z MySQL

Musisz skonfigurować swoją konfigurację za pomocą parametrów połączenia, DbProviderFactory i niestandardowego DatabaseInitializer dla MySql Connector 6.5.4. Opisałem pełny krok do uruchomienia EF5 i MySql, w tym kod dla inicjatorów na moim blogu . Jeśli potrzebujesz rozwiązania dostawcy członkostwa ASP.Net, o które pytano wcześniej:Dostawcy członkostwa/roli ASP.NET dla MySQL? Opublikuję tutaj rozwiązanie również dla kompletnego rozwiązania EF5 MySql.

Łącznik MySql nie obsługuje obecnie migracji EF 5, a platforma ASP.NET obsługuje tylko SimpleMembership (domyślnie MVC4) w przypadku MS SQL, a nie MySql. Poniższe rozwiązanie dotyczy Code First.

Kroki to:

  1. Pobierz EF 5 z NuGet
  2. Pobierz MySql.Data i MySql.Data.Entity z NuGet (6.5.4) lub MySql (6.6.4)
  3. Skonfiguruj dostawcę danych MySql
  4. Skonfiguruj ciąg połączenia MySql
  5. Utwórz niestandardowy inicjator bazy danych MySql
  6. Skonfiguruj niestandardowy inicjator bazy danych MySql
  7. Skonfiguruj członkostwo ASP.NET, jeśli tego potrzebujesz

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>

Ciąg połączenia

<connectionStrings>
  <add name="ConnectionStringName" 
    connectionString="Datasource=hostname;Database=schema_name;uid=username;pwd=Pa$$w0rd;" 
    providerName="MySql.Data.MySqlClient" />
</connectionStrings>

Inicjator bazy danych

Jeśli używasz łącznika MySql z NuGet (6.5.4), wymagany jest niestandardowy inicjator. Kod dostępny pod adresem http:// brice-lambson.blogspot.se/2012/05/using-entity-framework-code-first-with.html lub pod adresem http://www.nsilverbullet.net/2012/11/07/6-steps-to-get-entity-framework-5-working-with-mysql-5-5/

Następnie dodaj to do konfiguracji

<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>

Członkostwo 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>

Uruchom kontroler konta i widoki:

  1. Usuń AccountController MVC 4, AccountModels, folder widoku konta i udostępniony widok _LoginPartial
  2. Utwórz nową aplikację internetową MVC 3
  3. Skopiuj MVC 3 AccountController, AccountModels, Account view folder i _LogOnPartial udostępniony widok do swojej aplikacji MVC 4
  4. Zastąp @Html.Partial(“_LoginPartial”) we wspólnym widoku _Layout z @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. Zwiększ pole bazy danych o 1

  2. znajdź wszystkie nazwy za pomocą zapytania mysql, które zaczynają się na literę 'a'

  3. Próbuję zbudować statyczną klasę bazy danych, do której mogę uzyskać dostęp z dowolnej funkcji spoza klasy

  4. Błąd:Tabela „mysql.proc” nie istnieje podczas dodawania źródła danych MySQL do projektu Visual Studio

  5. Odpowiednik GROUP_CONCAT w Django