Вставить с хранимой процедурой и вернуть выходной параметр - PullRequest
0 голосов
/ 31 мая 2018

Я пытаюсь вставить значения в базу данных сущностей и вернуть true, если все в порядке.Я протестировал свою хранимую процедуру, и она работает нормально, но когда я пытаюсь вызвать ее из кода, я получаю следующую ошибку:

Нет сопоставления для типа объекта System.Collections.Generic.List`1

Мой вопрос: правильно ли я звоню?

using (Entities ent = new Entities())
{
    List<SqlParameter> parameters = new List<SqlParameter>();
    parameters.Add(new SqlParameter("@Parameter1", "Parameter1"));
    parameters.Add(new SqlParameter("@Parameter2", "Parameter2"));

    SqlParameter outputParameter = new SqlParameter();
    outputParameter.ParameterName = "@Confirm";
    outputParameter.SqlDbType = System.Data.SqlDbType.Bit;
    outputParameter.Direction = System.Data.ParameterDirection.Output;

    parameters.Add(new SqlParameter("@Confirm", outputParameter));

    ent.Database.ExecuteSqlCommand("exec TestProc @Parameter1, @Parameter2", parameters);

    bool success = Convert.ToBoolean(outputParameter.Value);
}    

1 Ответ

0 голосов
/ 31 мая 2018

ExecuteSqlCommand принимает объект [], а не List, поэтому передайте параметры. ToArray ().

Также не указывайте успех или неудачу с выходным параметром.Просто выведите ошибку из хранимой процедуры, если что-то пойдет не так.

И измените

                SqlParameter outputParameter = new SqlParameter();
                outputParameter.ParameterName = "@Confirm";
                outputParameter.SqlDbType = System.Data.SqlDbType.Bit;
                outputParameter.Direction = System.Data.ParameterDirection.Output;

                parameters.Add(new SqlParameter("@Confirm", outputParameter));

на

                SqlParameter outputParameter = new SqlParameter();
                outputParameter.ParameterName = "@Confirm";
                outputParameter.SqlDbType = System.Data.SqlDbType.Bit;
                outputParameter.Direction = System.Data.ParameterDirection.Output;

                parameters.Add( outputParameter );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...