В последнее время я работаю над хранимой процедурой и столкнулся с 1 странной проблемой.
Сначала я смог успешно вызвать хранимую процедуру из базы данных с помощью:
IList XXXList =
_context.Database.SqlQuery ( "spXXX") ToList ();.
Но когда мне нужно было передать параметры, это не удалось:
var parameters = new List<SqlParameter>();
parameters.Add(new SqlParameter("param1", param1Value));
parameters.Add(new SqlParameter("param2", param2Value));
IList<XXXViewModel> XXXList =
_context.Database.SqlQuery<XXXViewModel>("spXXX @param1, @param2", parameters).ToList();
И я получил ff, ошибка:
Нет сопоставления для типа объекта
System.Collections.Generic.List`1 [[System.Data.SqlClient.SqlParameter,
System.Data, версия = 4.0.0.0, культура = нейтральная,
PublicKeyToken = b77a5c561934e089]] известному управляемому провайдеру
тип.
Обратите внимание, что я тоже пробовал:
_context.Database.ExecuteSqlCommand<EXEC XXXViewModel>("spXXX @param1, @param2", parameters).ToList();
Но получил тот же результат: - (.
Также я попытался позвонить, указав каждый из параметров:
IList<XXXResult> query = Context.Database.SqlQuery<XXXResult>("SP @paramA, @paramB, @paramC", new SqlParameter("paramA", "A"), new SqlParameter("paramB", "B"), new SqlParameter("paramC", "C")).ToList();
У кого-нибудь есть идеи?