我在C#标准库接口,其中包括以下方法:存储库/工作单元模式 - 如何查询符合特定条件的对象的存储库?
IEnumerable<T> GetAll();
T GetById(int id);
void Delete(T entity);
void Add(T entity);
在我的领域层我的全部实例是工作包装纸的新单位,并把它传递到存储库。工作单元包装类隐藏了我是否使用NHibernate或实体框架并公开了一个Commit()方法。
在我的域图层中,如何查询仅满足特定条件的对象?
我认为我目前所做的工作非常低效。我目前做这个:
var results = myRepository.GetAll().Where......
如果我有一个非常大的物体,是GETALL()会过滤掉我不需要的那些前,他们中的每一个回归?我怎样才能防止不需要的对象被返回?
很明显,我可以在界面中添加更多的方法,但这似乎并不符合通过界面公开CRUD操作。
即 - 我不认为我应该增加之类的东西(但也许我错了):
IList<T> GetAllWhereMeetsMyCriteria();
的确他们非常感谢。这解决了我的问题。 – JMc 2011-05-14 11:54:21