【发布时间】:2010-10-17 15:29:50
【问题描述】:
我有一个存储库类,用于包装我的 LINQ to SQL 数据上下文。存储库类是一个业务线类,包含所有数据层逻辑(以及缓存等)。
这是我的 repo 界面的 v1。
public interface ILocationRepository
{
IList<Location> FindAll();
IList<Location> FindForState(State state);
IList<Location> FindForPostCode(string postCode);
}
但要为 FindAll 处理分页,我正在争论是否公开 IQueryable
从数据仓库中公开 IQueryable 的优缺点是什么?
非常感谢任何帮助。
【问题讨论】:
-
在仓库界面使用IEnumerable
怎么样? -
@KonstantinTarkus 我不赞成在存储库或 BLL 中使用
IEnumerable<T>,因为如果您没有注意并在这种情况下对同一个列表进行了许多 foreach 循环,它可能会影响性能您会多次致电GetEnumerator()。
标签: c# .net linq-to-sql iqueryable