我知道这可能是我的观点,但我正在寻找最佳实践。
据我所知,IQueryable<T>实现了IEnumerable<T>,所以在我的DAL中,我目前有如下方法签名:
IEnumerable<Product> GetProducts();
IEnumerable<Product> GetProductsByCategory(int cateogoryId);
Product GetProduct(int productId);我应该在这里使用IQueryable<T>吗?
这两种方法的优缺点是什么?
请注意,我计划使用Repository模式,因此我将拥有一个如下所示的类:
public class ProductRepository {
DBDataContext db = new DBDataContext(<!-- connection string -->);
public IEnumerable<Product> GetProductsNew(int daysOld) {
return db.GetProducts()
.Where(p => p.AddedDateTime > DateTime.Now.AddDays(-daysOld ));
}
}我应该把我的IEnumerable<T>改成IQueryable<T>吗?其中之一有什么优点/缺点?
发布于 2010-06-15 01:14:46
这取决于你想要什么样的行为。
< requested
虽然后者为调用者提供了很大的灵活性(假设您的存储库完全支持它),但它是最难测试的,而且可以说是最不确定的。
https://stackoverflow.com/questions/3039262
复制相似问题