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

C# Entity Framework:Ключова дума не се поддържа:'port'

Аргументът на използвания базов DbContext конструктор се нарича nameOrConnectionString . Следователно той поддържа име на низ за връзка от конфигурационния файл или като във вашия случай действителен низ за връзка.

Проблемът с последния е, че не позволява посочване на име на доставчика както при първия, идващ от конфигурацията, в който случай EF използва този, посочен в defaultConnectionFactory конфигурационен елемент, който във вашия случай е System.Data.Entity.Infrastructure.SqlConnectionFactory , с други думи - Sql сървър , следователно port не се поддържа изключение.

Има няколко начина за отстраняване на проблема.

(A) Променете defaultConnectionFactory конфигурация:

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

(B) Използвайте низ за връзка с име за конфигурация и посочете изрично доставчика:

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

и променете конструктора на

public MyDB()
{
    // ...
}

или ако името е различно от вашия DbContext име на производен клас:

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

(C) Използвайте 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. Рейтингова система в PHP и MySQL

  2. процентил по COUNT(DISTINCT) с корелиран WHERE работи само с изглед (или без DISTINCT)

  3. Как да се свържете с MySQL с помощта на Python

  4. Изберете от падащото меню и презаредете страницата

  5. Как да покажа изображението на mysql blob в контрола на изображението на asp.net?