8

Tôi đang làm việc trên dữ liệu Động.Phương thức 'Bỏ qua' chỉ được hỗ trợ cho đầu vào được sắp xếp trong LINQ to Entities. Phương thức 'OrderBy' phải được gọi trước phương thức 'Bỏ qua'

sau khi tạo một mô hình động và đăng ký trong global.asax, như

DefaultModel.RegisterContext(typeof(masterEntities1),new ContextConfiguration() { ScaffoldAllTables = true }); 

khi tôi chạy một ứng dụng, nó cho thấy một danh sách các bảng nhưng khi tôi nhấp vào bất kỳ của bảng nó ném một ngoại lệ:

Phương thức 'Bỏ qua' chỉ được hỗ trợ cho mục nhập được sắp xếp trong LINQ đến Đối tượng. Phương thức 'OrderBy' phải được gọi trước phương thức 'Bỏ qua'.

nhưng tôi chưa khai báo bất kỳ truy vấn nào trong đơn đăng ký của mình.

+0

tôi đã đi qua một số trang web có chứa các thông tin sau. –

+2

Nếu bạn đang sử dụng Entity Framework làm mô hình dữ liệu thì bạn sẽ phải cập nhật phương thức truy vấn của mình cho mọi thực thể. Bạn cần thêm mệnh đề thứ tự. Lý do bạn cần làm điều này là do mặc định phương thức truy vấn không được đặt hàng và trong các mẫu dự án Dữ liệu động, phân trang được kích hoạt cho các mẫu chi tiết Danh sách và Danh sách. Trong trường hợp nếu bạn không yêu cầu kết quả của phương thức truy vấn và sử dụng phân trang, bạn sẽ nhận được ngoại lệ sau khi bạn truy cập vào thực thể trong mẫu Chi tiết Danh sách/Danh sách –

+0

chẳng hạn như: public IQueryable GetProducts() { return this.ObjectContext.Products.OrderBy (p => p.ProductID); } –

Trả lời

12

Bạn phải gọi .OrderBy' trên truy vấn của mình nếu bạn sử dụng phương thức .Skip. Ví dụ, nếu bạn đang sử dụng một cái gì đó tương tự như sau:

results = results.Skip(pageNumber * size).Take(size);

Trong trường hợp trên bạn sẽ phải trước đó đã sử dụng .OrderBy ra lệnh truy vấn nếu bạn đang có kế hoạch về việc sử dụng phương pháp phân trang hoặc một cái gì đó của như. Nếu bạn có một lĩnh vực Id, thêm này vào biểu thức truy vấn ban đầu của bạn nên loại bỏ các lỗi:

.OrderBy(x => x.Id);

+1

Kể từ khi đặt hàng bằng ID (nếu dữ liệu đến từ một cơ sở dữ liệu) được ngụ ý, không thể giả định được thực hiện bằng phương pháp bỏ qua là tốt? – Diederik

Các vấn đề liên quan