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 и создал функция. В этой функции я определил Returns a collection of
как скаляр типа Int32
(что согласуется с тем, что я вижу, когда нажимаю кнопку [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? Мой SP возвращает значение для счетчика SELECT (*), таким образом да: 1 значение (типа int32). – Foxbox
Я попробовал context.ExecuteStoreQuery (Of Integer) («spProfileCount @ p0», «Q») (создайте его с помощью intellisesnse), но затем снова одно и то же сообщение об ошибке ... – Foxbox
@Foxbox VB ASP.NET MVC не имеют отношения к ваш вопрос. Так же и EF. Важно то, что существует тип 'ObjectResults (Of integer?)', Который реализует 'IEnumerable (Of Integer?)'. Это коллекция 'Integer?'. Вы должны сказать, какой элемент этой коллекции вы хотите назначить своей переменной 'n'. Один из способов сделать это: «n = context.spProfileCount (« Q »). Single()'. Все это указано на странице документации. – GSerg