Вызов хранимой процедуры (MVC4) - PullRequest
1 голос
/ 14 января 2012

(Использование MVC4 VB EF4 MSSQL Razor)

Я создал хранимую процедуру в базе данных MS SQL 2008.Затем я добавил этот SP в модель Entity Framework (вы не видите его после открытия файла .edmx, я вижу SP, когда открываю браузер модели).Затем я сделал «Добавить функцию импорта ...».Я сделал [Получить информацию о столбце] и «Создать новый сложный тип».

Так что теперь я хотел бы использовать этот SP.И использование ExecuteStoreQuery кажется правильным.

На данный момент лучшая попытка заключается в следующем:

Function Index() As ViewResult
 Dim context As New MyEntities
 Dim Result
 ' Call the SP with parameter "A"
 Result = context.ExecuteStoreQuery(Of MySP_Result)("MySP @p0", "A").ToList
 Return View(Result)
End Function

Где "MySP_result" - это имя Сложного Типа, которое возвращается SP (я вижу это в браузере модели EF).После нажатия клавиши F5 я получаю:

Элемент модели, передаваемый в словарь, имеет тип System.Collections.Generic.List, но для этого словаря требуется элемент модели типа System.Collections.Generic.IEnumerable

Так, что я должен изменить?

1 Ответ

0 голосов
/ 18 января 2012

Стандартный сгенерированный список начинается с:

@ModelType Mvc4App2.[classname]

Мне потребовалось некоторое время, чтобы правильно понять сообщение об ошибке.вам нужно изменить эту строку на:

@ModelType IEnumerable(Of Mvc4App2.[name of the complex type])

Я также немного изменил код контроллера:

Dim context As New [Name of the EF model]
Dim Result As List(Of [name of the complex type])
Result = context.ExecuteStoreQuery(Of [name of complex type])_
               ("[name of the stored procedure @p0", "[parameter 0]").ToList
Return View(Result)       
End Function       
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...