【发布时间】:2011-03-03 15:04:04
【问题描述】:
我知道这可能是意见,但我正在寻找最佳做法。
据我了解,IQueryable<T> 实现了IEnumerable<T>,所以在我的 DAL 中,我目前有如下方法签名:
IEnumerable<Product> GetProducts();
IEnumerable<Product> GetProductsByCategory(int cateogoryId);
Product GetProduct(int productId);
我应该在这里使用IQueryable<T> 吗?
这两种方法的优缺点是什么?
请注意,我计划使用存储库模式,所以我将有一个这样的类:
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> 吗?其中一个有什么优点/缺点?
【问题讨论】:
标签: linq-to-sql datacontext data-access-layer iqueryable