выстраивающий запрос к БД
IQueryable<SomeEntity> Query = from row in DataContext.GetTable<SomeEntity>() select row;
public Service By<T>(Expression<Func<T, bool>> predicate) where T : EntityBase
{
...
Query = from q in Query
join entity in DataContext.GetTable<T>().Where(predicate)
on q.EntityId equals entity.Id
where q.SomeProp == SomeVar
select q;
...
}
Т.е. в конечном итоге после генерации sql-запроса на каждый вызов By в запрос добавляется джойн с новой таблицей и парой новых условий в where через and
Вопрос: как сделать, чтобы каждые новые условия добавлялись через or?
Иными словами
Имеется
select ... join...join...join... where a=5 and SomeProp = 4 and y=76 and SomeProp = 9
Требуется
select ... join...join...join... where (a=5 and SomeProp = 4) or (y=76 and SomeProp = 9)
Посмотри реализацию в LINQKit или своё напиши. Это не очень сложно.
Посмотри на LinqSpecs, там они ещё и чейнятся в удобоваримом виде (через булеановские операторы)
Обсуждают сегодня