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

C# Entity Framework:słowo kluczowe nie jest obsługiwane:„port”

Argument użytej bazy DbContext konstruktor nazywa się nameOrConnectionString . Dlatego obsługuje nazwę ciągu połączenia z pliku konfiguracyjnego lub, jak w twoim przypadku, rzeczywisty ciąg połączenia.

Problem z tym ostatnim polega na tym, że nie pozwala na określenie nazwy dostawcy podobnie jak w przypadku pierwszego pochodzącego z konfiguracji, w którym to przypadku EF używa tego określonego w defaultConnectionFactory element konfiguracyjny, którym w Twoim przypadku jest System.Data.Entity.Infrastructure.SqlConnectionFactory , innymi słowy - Sql Server , stąd port nieobsługiwany wyjątek.

Istnieje kilka sposobów rozwiązania tego problemu.

(A) Zmień defaultConnectionFactory konfiguracja:

<defaultConnectionFactory type="MySql.Data.Entity.MySqlConnectionFactory, MySql.Data.Entity.EF6"></defaultConnectionFactory>

(B) Użyj nazwanych parametrów połączenia konfiguracji i określ wyraźnie dostawcę:

<connectionStrings>
    <add name="MyDB" providerName="MySql.Data.MySqlClient" connectionString="server=myservername;port=3306;uid=myaccount;database=mydb;pwd=mypwd123" />
</connectionStrings>

i zmień konstruktor na

public MyDB()
{
    // ...
}

lub jeśli nazwa jest inna niż Twój DbContext nazwa klasy pochodnej:

public MyDB() : base(connection_string_name)
{
    // ...
}

(C) Użyj DbConfigurationTypeAttribute :

[DbConfigurationType(typeof(MySql.Data.Entity.MySqlEFConfiguration))]
public class MyDB : DbContext
{
    // ...
}


  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:Dodaj kolumnę sekwencji na podstawie innego pola

  2. Pisanie hebrajskiego do mySql za pomocą JAVA

  3. błąd zmienianie tabeli, dodawanie klucza obcego ograniczenia uzyskiwanie błędu Nie można dodać lub zaktualizować wiersza podrzędnego

  4. Użycie Python3 mysqlclient-1.3.6 (aka PyMySQL)?

  5. AWS MySQL RDS kontra AWS DynamoDB