Ty thay đổi dòng này:
Property(t => t.Id).HasColumnName("Id");
... tới đây:
Property(t => t.Id).HasColumnName("ID"); // Upper case ID.
Theo mặc định, tên cột của Oracle được viết hoa. Và khi EF tạo các tên được đặt trong dấu ngoặc kép, bạn phải đảm bảo rằng bạn đặt đúng cách viết hoa.
Nếu bạn thực sự muốn tiếp tục sử dụng "Id"
, thì bạn phải tìm cách để EF không đặt dấu ngoặc kép xung quanh Id
để việc kiểm tra tên không phân biệt chữ hoa chữ thường (tôi không biết làm thế nào để làm điều đó).
Hoặc, bạn phải đổi tên cột trong Oracle chính xác là Id
.
alter table tbluser rename column id to "Id";
Nhưng thực sự, tôi nghĩ bạn chỉ nên thay đổi chuỗi của mình thành "ID"
và được thực hiện với nó.