Tôi đã gặp sự cố tương tự và tôi đã giải quyết nó bằng cách thay đổi tùy chọn hợp nhất của ObjectSet. Ví dụ:
using (TargetDBDataContext db = new TargetDBDataContext())
{
db.SomeView.MergeOption = System.Data.Objects.MergeOption.NoTracking;
return db. SomeView.ToList();
}
Có vẻ như khung thực thể (EF) không xử lý chính xác các chế độ xem có khóa chính trùng lặp hoặc không có khóa chính nào cả. Vì vậy, khi có hai hàng mà EF được coi là bằng nhau, EF sẽ tải hàng đầu tiên như bình thường nhưng sẽ không tải hàng thứ hai vì nó sẽ coi là hàng đã được tải.