Я обновил свою Модель с моей Хранимой процедурой, и в образцовом браузере I видят, что это имеет Функциональный импорт также.
Мой SP вставляет запись, если ни один не существует и еще возвращает 1 возвраты 0, довольно простой, я думаю.
SP
CREATE PROCEDURE [dbo].[User_UpdateMessage]
(
@UserId int = 0,
@UserId2 int = 0,
@Success bit = 0 OUTPUT
)
AS
BEGIN
SET NOCOUNT ON;
IF NOT EXISTS ( SELECT [UserIdFrom] FROM [dbo].[MessageUpdate] WHERE [UserIdFrom] = @UserId AND [UserIdTo] = @UserId2 )
BEGIN
INSERT INTO [dbo].[MessageUpdate] ([UserIdFrom], [UserIdTo])
VALUES (@UserId, @UserId2)
SELECT @Success = 1;
END
ELSE
SELECT @Success = 0;
END
В моем коде я называю SP:
// Output Parameter
System.Data.Objects.ObjectParameter paramSuccess1 =
new System.Data.Objects.ObjectParameter("Success", typeof(byte));
_Entity.User_UpdateMessage(id, userId, paramSuccess1);
Это перестало работать при выполнении SP со следующей ошибкой:
Средство чтения данных, возвращенное поставщиком данных хранилища, не имеет достаточного количества столбцов для запроса требуемым
[ОБНОВЛЕНИЕ]
Поскольку я писал это, я решил проблему. В Образцовом разработчике тип возврата не должен быть ни одним, у меня был он для возврата Байта.
Ответ на этот вопрос мог быть дальнейшими улучшениями или изменениями.