(使用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
那么我需要改变什么?
答案 0 :(得分:0)
标准的基因处理列表视图以:
开头@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