У меня есть эти вспомогательные методы:
public static IQueryable<T> All<T>(this IUnitOfWork unitOfWork)
where T : class
{
return unitOfWork.Context.Set<T>();
}
public static T Find<T>(this IUnitOfWork unitOfWork, Func<T, bool> predicate)
where T : class
{
return unitOfWork.All<T>().FirstOrDefault(predicate);
}
Когда я вызываю второй так:
var payment = _unitOfWork.Find<ContactRow>
(p => p.PaymentAttemptRef == paymentAttemptRef
&& p.ContactType == type);
Я ожидаю, что предикат станет частью запроса!! но проблема в том, что сгенерированный выбор не содержит предложения where и возвращает все строки в таблице.
Любая идея, почему это происходит? Второй метод вызывает первый, который возвращает объект запроса, поэтому я подумал, что это не так?