如何从存储过程中获得价值?

时间:2012-01-21 15:33:37

标签: asp.net-mvc model-view-controller

ASP.NET MVC,VB.NET,SQL Server 2008 R2,实体框架v4

我创建了一个返回整数值的存储过程

PROCEDURE [dbo].[spProfileCount] 
@STARTLETTER char(1) = 'A'
AS
BEGIN  
    SET NOCOUNT ON

    SELECT count(*) 
    FROM [Profils]
    WHERE LEFT(lastname,1) =  @STARTLETTER 

END

我在EF中导入了存储过程并创建了一个函数。在该函数中,我将Returns a collection of定义为Int32类型的标量(这与我按[get column information]按钮时看到的内容一致)。

那么这在控制器中是如何工作的?我尝试过很多事情都没有成功。

Dim n As Integer = 0 
n = context.spProfileCount("Q")

错误:

  

System.data.Objects.ObjectResults(整数?)类型的值不能   被转换为'整数'。

1 个答案:

答案 0 :(得分:3)

您是否尝试过文档中显示的内容?

ObjectResult(Of T) Class

// Execute the query and get the ObjectResult.
ObjectResult<Product> queryResult = query.Execute(MergeOption.AppendOnly);

// Iterate through the collection of Product items.
foreach (Product result in queryResult)
    Console.WriteLine("{0}", result.Name);

如果你确定你只有一行,它将只是queryResult.Single()