Я предполагаю, что есть больше чем один способ снять кожу с кошки. Я помню, как во время TechEd MS говорили, что они создали Entity SQL с явной целью иметь более простую альтернативу созданию динамических выражений. Это все еще абстракция БД и немного быстрее, чем использование выражений, поэтому для динамических вещей я вряд ли могу думать о недостатке. У меня супер работает.

тоящее время я использую пример динамического запроса LinqKit / Ms для динамического построения выражений Linq из строк. Это отлично работает.

LinqKit:http://www.albahari.com/nutshell/linqkit.aspxMicrosoft динамические запросы Linq:http://weblogs.asp.net/scottgu/archive/2008/01/07/dynamic-linq-part-1-using-the-linq-dynamic-query-library.aspx

Прямо сейчас я переношу свое приложение с C # 3.5 на C # 4.0. Мне интересно, есть ли другой способ (стандартный способ фреймворка) для построения запросов из строк.

Я проверил документацию, но пока ничего не нашел. Также это не проблема, так как у меня есть вышеуказанное решение.

Только я бы предпочел использовать «стандартные» функции, если они есть. Какая лучшая практика?

 Slauma09 янв. 2011 г., 13:28
Вот связанное обсуждение:stackoverflow.com/questions/3782538/... , Я думаю, что это актуально для .NET 4, так что по-прежнему ничего не встроено в фреймворк - кроме случаев, когда вы говорите о Linq to Entities, тогда EF обладает возможностями динамического построения запросов (хотя пока что не является новым в .NET 4). насколько я знаю):msdn.microsoft.com/en-us/library/bb338811.aspx
 Horst Walter11 янв. 2011 г., 00:27
Пока что мой старый код работает. Незначительные корректировки не требуется. Например, вызов метода больше не принимает значение null, но вам нужно вызвать перегруженный метод. В основном простые вещи, как только вы знаете. Однако приятно знать, что я, очевидно, ничего не пропустил.

Ответы на вопрос(1)

Решение Вопроса

и я очень доволен результатом. Я сделал это с помощью Entity Framework и метода ObjectQuery.Select (строковый запрос, ObjectParameters [] params). Больше информации здесь:http://msdn.microsoft.com/en-us/library/bb298787.aspx#Y586.

Вы не будете делать выражения из строки, но будете использовать SQL для сущностей, который хорошо работает и был создан именно для этой цели, поскольку динамическое создание Expression не тривиально и на самом деле медленнее.

ура

 Horst Walter24 мар. 2011 г., 19:12
Это хорошо, мне понадобилось время, чтобы проверить это. Однако этот подход явно отличается от «MSDynamicLinq2010» (из примеров VS2008) и «LinqKit» и, следовательно, что-то новое (по крайней мере, для меня). Я буду иметь это в виду для моих следующих решений.
 Fabian Nicollier24 мар. 2011 г., 22:06
Я предполагаю, что есть больше чем один способ снять кожу с кошки. Я помню, как во время TechEd MS говорили, что они создали Entity SQL с явной целью иметь более простую альтернативу созданию динамических выражений. Это все еще абстракция БД и немного быстрее, чем использование выражений, поэтому для динамических вещей я вряд ли могу думать о недостатке. У меня супер работает.

Ваш ответ на вопрос