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

Kế thừa lớp với .NET EF4.1 + MySQL

Hôm nay tôi cũng gặp phải vấn đề tương tự, sự khác biệt là tôi không dựa vào Code First để tạo các bảng cho mình, tôi đang tạo chúng theo cách thủ công khi thực hiện.

Tôi đã làm theo mô tả được cung cấp tại đây và tôi đã gặp phải lỗi tương tự như bạn, tôi đã tạo thủ công trường "Bộ phân biệt" trên bảng của mình và thay đổi loại của nó thành MEDIUMTEXT nhưng nhà cung cấp khẳng định rằng bằng cách nào đó tôi đang cung cấp thuộc tính MaxLength, mặc dù MEDIUMTEXT không có MaxLength như VARCHAR , Tôi cho rằng đây phải là lỗi của nhà cung cấp.

Chà, để giải quyết vấn đề này, tôi đã sử dụng API thông thạo để nói theo cách thủ công tên cột phân biệt (mà tôi chỉ giữ là "Kẻ phân biệt") và các giá trị mà EF sẽ mong đợi từ cột phân biệt, trong trường hợp của bạn, đây sẽ là:

Ghi đè
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.Entity<Vehicle>()
            .Map<Car>(m => m.Requires("Discriminator").HasValue("Car"))
            .Map<Bike>(m => m.Requires("Discriminator").HasValue("Bike"));
}

Tôi đã thay đổi loại cột phân biệt của mình thành VARCHAR (50) mà không có vấn đề gì rõ ràng, nó đang hoạt động tốt đối với tôi. Giải pháp thay thế cho tôi là chuyển sang một ORM khác, việc này quá nhiều công việc, tôi sẽ đợi các phiên bản tiếp theo của nhà cung cấp MySql và kiểm tra xem họ đã sửa lỗi này chưa, trong khi đó tôi sẽ kiên trì giải pháp này.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hỗ trợ ràng buộc khóa ngoại trong Rails

  2. có thể lọc bộ truy vấn sau khi truy vấn không? django

  3. Có bất kỳ mức tăng hiệu suất nào trong việc lập chỉ mục một trường boolean không?

  4. MySQL Workbench giảm kết nối khi không hoạt động

  5. kết quả truy vấn mysql vào mảng php