2014-09-12 2 views
1

Dapper 1.34 (на более раннем Dapper ver, как 1.1x, это отлично работало).Параметры Dapper не работают?

db.Query (@ "Выберите [любой] из @TableName Где [PREFIX] = '@ префикс' порядке [что-то] DESC", новый {TableName = TABLENAME, префикс = префикс})

Ошибка: System.Data.SqlClient.SqlException (0x80131904): Должен объявить переменную таблицы "@TableName".

Я получаю такую ​​же ошибку, пытаясь определить DynamicParameters и передать их.

======= Я в настоящее время делает строку подстановки {% 1} .. но это не кажется приемлемым ...

Могу ли я, пожалуйста, получить образец, также глядя на тест-классе dapper Я не могу увидеть, как он работает, может быть, что-то не так с моей настройкой проекта?

ответ

0

Нет, никогда не работал хорошо, из-за того, как SQL работает:

  • имена таблиц не могут быть настроены параметры, и щеголеватый никогда не предлагал этого; что может работать, если вы передадите в DataTable как табличное-параметра, хотя - что щеголеватый делает поддержку - но я не думаю, что это то, что вы после
  • '@Prefix' является строковым; вы просто имеете в виду @Prefix (никаких одинарных котировок)
+0

На самом деле все остальное неважно, что я зафиксирован на параметре Table Name, думал, что это всего лишь параметр ... Цифры, что первый запрос, который я написал, должен был иметь имя перешло к нему. После попытки передать параметр 20 различными способами, я отказался от мысли, что это ошибка, которую я получил бы позже. Мне никогда не приходило в голову, что я передаю имя таблицы ... – EthernetIP

+0

Marc, Как мне получить значение без имени столбца. Я делаю что-то вроде этого: (IDictionary ) ret.First()). Values.ToList() [0] есть лучший способ? PS Я возвращаю 1 столбец и 1 строку в выше, но потенциально будет больше строк и столбцов. Как я повторяю его как таблицу или что-то в этом роде. – EthernetIP

+0

@EthernetIP Я не могу разобрать этот вопрос; можете ли вы перефразировать? Я почти наверняка отвечу на него, но сначала мне нужно это понять ... –

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