Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

C # Entity Framework:Từ khóa không được hỗ trợ:'port'

Đối số của cơ sở được sử dụng DbContext Hàm tạo được gọi là nameOrConnectionString . Do đó, nó hỗ trợ tên của một chuỗi kết nối từ tệp cấu hình hoặc trong trường hợp của bạn là một chuỗi kết nối thực.

Vấn đề với sau này là nó không cho phép chỉ định tên nhà cung cấp như với cái trước đến từ cấu hình, trong trường hợp đó EF sử dụng cái được chỉ định trong defaultConnectionFactory phần tử cấu hình, trong trường hợp của bạn là System.Data.Entity.Infrastructure.SqlConnectionFactory nói cách khác - Máy chủ Sql , do đó port không được hỗ trợ ngoại lệ.

Có một số cách để khắc phục sự cố.

(A) Thay đổi defaultConnectionFactory cấu hình:

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

(B) Sử dụng chuỗi kết nối cấu hình được đặt tên và chỉ định rõ ràng nhà cung cấp:

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

và thay đổi hàm tạo thành

public MyDB()
{
    // ...
}

hoặc nếu tên khác với DbContext của bạn tên lớp dẫn xuất:

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

(C) Sử dụng 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. Làm thế nào để giảm phân vùng mà không làm giảm dữ liệu trong MySQL?

  2. Không thể thả bảng MySQL do các ràng buộc về khóa ngoại

  3. mysql - sau khi chèn bỏ qua lấy khóa chính

  4. Trả về kết quả mặc định cho giá trị IN bất kể

  5. SQL nhiều lựa chọn