выстраивающий запрос к БД
                  
                  
                  
                  
                  
                  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, там они ещё и чейнятся в удобоваримом виде (через булеановские операторы)
Обсуждают сегодня