2012-01-14 17 views
1

(MVC4 VB EF4 MSSQL Razorを使用)ストアドプロシージャ(MVC4)を呼び出す

MS SQL 2008データベースにストアドプロシージャを作成しました。次に、そのSPをEntity Frameworkモデルに追加しました(.edmxファイルを開いた後は表示されません。モデルブラウザを開いたときにSPが表示されます)。次に、「関数のインポートを追加...」しました。私は[列情報の取得]と[新しい複合型の作成]を行いました。

だから、私はそのSPを使いたいです。そして、ExecuteStoreQueryを使用することは行く方法です。

これまでの最高の試みはこれです:

「MySP_resultは」SP(私はEFモデルブラウザでそれを参照してください)によって返される複合型の名前です
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 

。 F5キーを押した後、私は得る:辞書に渡さ

モデルアイテムはタイプ のSystem.Collections.Generic.List、 ですが、この辞書はSystem.Collections.Generic.IEnumerable

タイプ のモデルアイテムが必要です

私は何を変更する必要がありますか?

答えて

0

標準genereatedリストビューで始まる:

@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  
関連する問題