Entity framework 4 EF 4.0存储库模式IList<;T>;或IEnumerable<;T>;

Entity framework 4 EF 4.0存储库模式IList<;T>;或IEnumerable<;T>;,entity-framework-4,Entity Framework 4,我确实看过EF存储库模式在web上的常见实现。 然后我提出了这样的问题。例如,如果我有这样的方法: public IEnumerable<Entity> FindEntity(Expression<Func<Entity, bool> where) {...} public IEnumerable FindEntity(表达式x.Date==inputDate)); 那么我可能在myList实例中拥有IList接口(Count等)的所有优点 这是一种很好

我确实看过EF存储库模式在web上的常见实现。 然后我提出了这样的问题。例如,如果我有这样的方法:

    public IEnumerable<Entity> FindEntity(Expression<Func<Entity, bool> where) {...}
public IEnumerable FindEntity(表达式x.Date==inputDate));
那么我可能在myList实例中拥有IList接口(Count等)的所有优点

这是一种很好的方法,还是有更好的铸造方法 IEnumerable to IList或作为一个选项,我可能在存储库中有额外的方法,默认情况下返回IList,例如

    public IList<Entity> FindEntity(Expression<Func<Entity, bool> where) {....} 

public IList FindEntity(Expression我认为这是一个选择。IEnumerable是集合的最小公分母。您也可以foreach和编写linq语句。ICollection或Ilist在该层的较高位置会暴露出更多您可能不想允许的功能,例如向集合中添加某些内容,删除类似的内容。

可能是因为它ovides语句的“延迟执行”,但我对EF4或FindEntity的了解还不够,不知道这里是否存在这种情况。当然,这是IEnumerable在代码和Linq to SQL中通常都会遇到的问题,值得思考。
    public IList<Entity> FindEntity(Expression<Func<Entity, bool> where) {....}