Dapper-запрос с параметром, не содержащим временную таблицу в последующем запросеC#

Место общения программистов C#
Ответить
Anonymous
 Dapper-запрос с параметром, не содержащим временную таблицу в последующем запросе

Сообщение Anonymous »

У меня есть код C#, который выполняет запрос Dapper, создает временную таблицу и использует параметр для передачи значения. В последующем запросе временная таблица недоступна и выдает ошибку.

Недопустимое имя объекта #TempTable

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

Код: Выделить всё

public async void MyMethod()
{
using(var connection = _unitOfWork.GetConnection())
{

connection.Open();

var id = await connection.QueryAsync(@"CREATE TABLE #TempTable(Id int);
INSERT INTO #TempTable SELECT TOP 1 ID from XYZ WHERE P_ID = @PID",
new { PID = 12345  }).ConfigureAwait(false);

await connection.ExecuteAsync("SELECT ID FROM #TempTable");
)
}
}
Здесь #TempTable не будет доступен во втором запросе.
Как избежать этой проблемы? Я хочу использовать параметризованный запрос (например, @parameter)
Я не хочу использовать параметр типа $"Выберите идентификатор из XYZ, где P_ID = { pid

Подробнее здесь: https://stackoverflow.com/questions/798 ... uent-query
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»