我有一个存储库,可以适应任何类型的数据源
这包括某些类型的Web服务,数据库(使用ActiveRecord和NHibernate)甚至是平面文件
对于ActiveRecord,我有EnumerateQuery(IActiveRecordQuery query),它返回IEnumerable
就像我需要的那样,但界面没有记录。
它到底是做什么用的?我该如何使用?
我可以使用它来扩展我的Fetch()函数以接受其他数据源吗?
我可以用自己的类包装它以接受其他数据源吗?
答案 0 :(得分:1)
我会将IQueryable用作抽象。使您的IRepository实现IQueryable,然后ActiveRecord存储库将委托给Castle.ActiveRecord.Linq,平面文件存储库将使用LINQ to XML等实现。