Использование Dapper с помощью хранимой процедуры - PullRequest
0 голосов
/ 27 марта 2019

Я работаю на ядре asp.net с помощью dapper ORM. Я хочу выполнить хранимую процедуру в dapper и получить результат в логическом значении. Как я могу добиться этого?

На самом деле, в хранимой процедуре,я возвращаю 0 или 1, но когда ответ возвращается в коде, то результат имеет значение -1, я в замешательстве, я возвращаю только 0 или 1.

 using (var connection = new SqlConnection(connectionString))
                {
                    // Create User Connection
                    var queryParameters1 = new DynamicParameters();
                    queryParameters1.Add("@ConnectionId", connectionId);
                    queryParameters1.Add("@UserTokenId", tokenResult?.Id);
                    response = await connection.ExecuteAsync(
                        "Proc_CreateUserConnection",
                        queryParameters1,
                        commandType: CommandType.StoredProcedure);
                }

Я хочу получить хранимую процедурувывод в логическом значении или в форме 0 или 1.

Ответы [ 2 ]

2 голосов
/ 27 марта 2019

Я бы хотел немного подробнее остановиться на этом.

В этом случае вы возвращаете значение bool, которое означает, что оно является единственным результатом.Лучший способ получить отдельные результаты - использовать скаляр.Это гарантирует, что наш код вернет и сделает доступным только одно значение (как уже упоминали Дипанки и другие).

Вы должны убедиться, что вы выполнили команду выбора, которая будет когда-либо возвращать только один результат (в противном случаеfail) в конце вашей хранимой процедуры.

Затем в вашем коде c # вам нужно позвонить:

var result = await conn.ExecuteScalarAsync<T>("Your procedure", new { arguments },
    commandType: CommandType.StoredProcedure);

Также обратите внимание, что вы должны await по этому вопросу, поэтому мы не будемне блокировать поток.

2 голосов
/ 27 марта 2019

вы можете использовать ExecuteScalarAsync () вместо ExecuteAsync (). Потому что он возвращает одно значение.когда вы будете использовать оператор выбора в SP

надеюсь, что это работает

...