Có cách nào để chuyển một mệnh lệnh theo mệnh đề đến một lớp DbSet trong EF không?Sắp xếp dữ liệu bằng EF DbSet
Tôi đang sử dụng C#
Có cách nào để chuyển một mệnh lệnh theo mệnh đề đến một lớp DbSet trong EF không?Sắp xếp dữ liệu bằng EF DbSet
Tôi đang sử dụng C#
Tôi không chắc chắn làm thế nào để làm điều đó từ DbSet, nhưng bạn có thể làm điều này từ DBContext bằng cách truy cập vào các IQueryable
private readonly DbContext context;
...
context.Set<T>().OrderBy(item => item.Property)
này sẽ phải được thực hiện trong một truy vấn,
hoặc bạn sẽ cần phải xác định một QueryView trong EDMX.
một QueryView có thể được dùng để xác định/theo thứ tự/lọc dữ liệu.
Có xem xét này: DefiningQuery versus QueryView
Tôi đang sử dụng phương pháp tiếp cận mã đầu tiên. Không có tệp Edmx. – Omar
bạn có thể tiêu thụ EDMX từ mã đầu tiên, nhưng sau đó một lần nữa nó kinda bất chấp toàn bộ khái niệm mã đầu tiên. –
Như đã đề cập bởi Alexandre bạn có thể làm điều đó trong truy vấn như:
var emps = from e in _db.Employees
orderby e.FirstName
select e;
Đây _db.Employees là DbSet.
Dưới đây là một db.Employees DBSet. Đó có phải là những gì bạn đang cố gắng làm không?
using System.Linq;
namespace MyNamespace
{
public class MyClass
{
public DBContext db;
public void MyMethod
{
foreach (var emp in db
.Employees
.Where(e => e.IsActive) // (or whatever)
.OrderBy(e => e.LastName))
{
DoSomething(emp);
}
}
}
}
Điều gì về cách sử dụng .OrderBy
trực tiếp trên thực thể?
db.Employees.OrderBy(p => p.Id);
Tôi biết điều này không chính xác những gì tôi đã hỏi, nhưng nó có công việc ngay tại đó trong giao diện – Omar