0
ASP.NET MVC、VB.NET、SQL Server 2008 R2の、Entity FrameworkのV4ストアドプロシージャから値を受け取る方法は?
私は
PROCEDURE [dbo].[spProfileCount]
@STARTLETTER char(1) = 'A'
AS
BEGIN
SET NOCOUNT ON
SELECT count(*)
FROM [Profils]
WHERE LEFT(lastname,1) = @STARTLETTER
END
私はEFでストアドプロシージャをインポートして作成された整数値を返すストアドプロシージャを作成しました関数。この関数では、
Int32
のスカラーとして
Returns a collection of
を定義しました(これは
[get column information]
ボタンを押したときのものと一致しています)。
これはコントローラでどのように機能しますか?私は成功せずに多くのことを試みました。
I.e.
Dim n As Integer = 0
n = context.spProfileCount("Q")
エラー:
Value of type System.data.Objects.ObjectResults(of integer?)' can not be converted to 'integer'.
なしになるだろう。それはASP.NET MVC VBですか? My SPはSELECT count(*)の値を返します。したがって、yes:1の値(int32型)を返します。 – Foxbox
私はcontext.ExecuteStoreQuery(Of Integer)( "spProfileCount @ p0"、 "Q")(intellisesnseでビルド)を試みましたが、同じエラーメッセージを返しました... – Foxbox
@Foxbox VB ASP.NET MVCは、あなたの質問。 EFもそうです。重要なのは、 'IEnumerable(Of Integer?)'を実装する 'ObjectResults(Of integer?) '型があるということです。これは 'Integer?'の集合です。このコレクションのどの要素を変数 'n'に代入したいのかを言わなければなりません。それを行う方法の1つは、 'n = context.spProfileCount(" Q ")。Single()'です。これはすべてドキュメントページに記載されています。 – GSerg