При выполнении сохраненного процесса с параметрами в EF 4.3 сопоставления не существует из типа объекта System.Collections.Generic.List.

В последнее время я работал над хранимой процедурой и столкнулся с 1 странной проблемой.

Во-первых, я смог успешно вызвать хранимую процедуру из базы данных через:

IList <XXXViewModel> 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, Version = 4.0.0.0, Culture = нейтральный, 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();

У кого-нибудь есть идеи?

Ответы на вопрос(7)

Ваш ответ на вопрос