2012-05-29 4 views
-2

Это было легко построить пользовательский запрос, как это с ADO.NET:LINQ к SQL строитель пользовательских запросов

SqlCommand.CommandText = "SELECT Column" + variable1 + ", Column" + Variable2 + " FROM TABLE"; 

в том, что в состоянии сделать это в LINQ к SQL? не

Благодаря

+1

Вам необходимо предоставить нам лучший пример того, как вы собираетесь его использовать, прежде чем мы сможем вам помочь. – GrandMasterFlush

+0

Вы строили свои запросы таким образом с помощью ADO.NET? Я имею в виду путем объединения строки со значениями? –

+0

'string variable1 =" a '; пользователи DROP TABLE; SELECT * FROM userinfo WHERE' t '=' t ";' –

ответ

0

Нет нет общего способ построения динамического запроса.

Метод должен иметь известный конкретный тип возврата. Этот тип может быть System.Object, но тогда вам нужно использовать много уродливого кода отражения , чтобы получить участников. И в этом случае вам также придется использовать много уродливого кода выражения выражения отражения для генерации возвращаемого значения .

Если вы пытаетесь динамически генерировать столбцы на стороне пользовательского интерфейса - прекратите это делать. Определите столбцы во время разработки, а затем просто покажите/скройте столбцы, которые вам действительно нужны/хотят видеть пользователь. У вас ваш запрос возвращает все столбцы, которые могут быть видны.

Если вы не заметить серьезную проблему производительности выбирающей все столбцы данных (в этом случае, вы, вероятно, не покрывающий индекс вопросов на уровне базы данных), то вам будет гораздо лучше с этим подходом , Это прекрасно, чтобы генерировать предикаты и сортировать запросы динамически, но вы действительно не хотите этого делать с выходом . More about this