Tôi cần tạo chức năng cho phép người dùng lọc các thực thể bằng truy vấn theo nghĩa đen (ví dụ: age gt 20 and name eq 'john'
). Có một chức năng được cung cấp để làm điều này trong C#/Asp.Net MVC hay tôi phải phân tích cú pháp truy vấn này một mình?Làm cách nào để lọc các thực thể bằng truy vấn trong C#?
Tôi nhận thấy rằng OData ngụ ý có chức năng chính xác như vậy (OData Filter Expressions MSDN). Tuy nhiên, tôi không quen thuộc với nó vì vậy tôi không biết làm thế nào để thực hiện hành vi như vậy trong dự án của tôi.
tôi cần một cái gì đó như thế này:
var list = new List<Person>
{
new Person { Name = "John", Age = 30 },
new Person { Name = "Hanna", Age = 25 },
new Person { Name = "John", Age = 15 }
};
string query = "age gt 20 and name eq /'John/'";
IEnumerable<Person> result = list.FilterByExpression(query);
// returns list with John aged 30
Lời khuyên nào sẽ được đánh giá cao.