Tôi thích sử dụng lại các biểu thức vì lý do DRY, nhưng làm cách nào để sử dụng lại các biểu thức trong câu lệnh LINQ?Làm cách nào để tôi có thể sử dụng lại các biểu thức trong các câu lệnh LINQ?
ví dụ:
Tôi có
public static class MyExpressions {
public static Expression<Func<Product,bool>> IsAGoodProduct() {
return (p) => p.Quality>3;
}
}
Và muốn sử dụng trong báo cáo LINQ, vì vậy
var goodProds = from p in dataContext.Products
where ????? // how do I use IsAGoodProduct here?
select p;
Chắc chắn, tôi có thể sử dụng chức năng IQueryableExtension.Where, nhưng điều đó sẽ làm cho gia nhập và các chức năng khác alot xấu hơn cho các truy vấn phức tạp hơn.
Điều này có thể hay là hạn chế của LINQ?
@Gary - hy vọng bạn không nhớ rằng tôi đã thêm một ví dụ để làm cho nó rõ ràng hơn. – tvanfosson
Không, điều đó tuyệt vời :) –
Điều gì về việc sử dụng: "nơi IsAGoodProduct(). Biên dịch(). Gọi()" – Razzie