2010-10-21 2 views
3

Мне известно о небольшом количестве усилий при построении запросов Linq динамически, таких как this и this.динамические запросы Linq с платформой Entity

Нет, кажется, идеально, поскольку я хотел бы избегать размещения выражений в строке и опускать где-то, если он не нужен.

Моя основная проблема заключается в том, что запрос оптимизирован для базы данных и динамически опускает ненужные предложения, когда это возможно.

Есть ли какие-либо новые разработки в EF 4.0 для таких сценариев?

UPDATE

здесь одна ссылка я нашел очень полезным: http://www.albahari.com/nutshell/predicatebuilder.aspx действительно, добавив: «И» фильтры динамически тривиальна, и добавление «или» фильтры можно легко сделать с помощью предиката строитель:

var predicate = PredicateBuilder.False<Product>(); 
predicate = predicate.Or (p => p.Description.Contains (temp)); 

и согласно LINQPad SQL, получает испускаемый соответственно к тому, что были применены фильтры ..

ответ

1

для опуская Где причину (псевдокод, надеюсь, я понял ваш вопрос кор прямо):

var query = IQueryable<Foo>(); 

if(someCondition) 
    query = query.Where(......); 

var result = query.Select(.......); 

Для динамических запросов - я не слышал ни о чем новом. ИМХО нам придется остаться со струнами. Можете ли вы придумать лучший подход?

Смежные вопросы