Я пытаюсь реализовать шаблон репозитория с моими объектами poco, автоматически сгенерированными из моего edmx.
В моем классе репозитория у меня есть:
IObjectSet<E> _objectSet;
private IObjectSet<E> objectSet
{
get
{
if (_objectSet == null)
{
_objectSet = this._context.CreateObjectSet<E>();
}
return _objectSet;
}
}
public IQueryable<E> GetQuery(Func<E, bool> where)
{
return objectSet.Where(where).AsQueryable<E>();
}
public IList<E> SelectAll(Func<E, bool> where)
{
return GetQuery(where).ToList();
}
Где E - один из моих классов POCO. Когда я отслеживаю базу данных и запускаю это:
IList<Contact> c = contactRepository.SelectAll(r => r.emailAddress == "myemail@email.com");
Он отображается в трассировке SQL как выбор для всего в моей таблице контактов. Куда я здесь не так?
Есть лучший способ сделать это? Разве объект не загружается лениво ... поэтому он пропустил предложение where?
Это статья, которую я прочитал, в которой сказано использовать objectSet's ... поскольку с POCO у меня нет EntityObject для передачи в "E"
http://devtalk.dk/CommentView,guid,b5d9cad2-e155-423b-b66f-7ec287c5cb06.aspx