Zaktualizowałem mój model za pomocą mojej procedury przechowywanej iw przeglądarce modelu widzę, że ma także import funkcji.
Mój SP wstawi rekord, jeśli go nie ma i zwróci wartość 1, która zwraca 0, wydaje mi się całkiem prosta.Sposób korzystania z parametru OutPut w SP z EF 4.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
W moim kodu Wołam SP:
// Output Parameter
System.Data.Objects.ObjectParameter paramSuccess1 =
new System.Data.Objects.ObjectParameter("Success", typeof(byte));
_Entity.User_UpdateMessage(id, userId, paramSuccess1);
Jest braku podczas wykonywania SP z powodu następującego błędu:
The data reader returned by the store data provider does not have enough columns for the query requested
[UPDATE]
Kiedy to pisałem, rozwiązałem problem. W projektancie Modelu typem zwracanym nie powinno być żadne, musiałem zwrócić Byte.
Odpowiedz na to pytanie mogą być dalsze ulepszenia lub zmiany.
Ja też mam ten sam problem masz z widokiem .... nie masz pojęcia. – Ramakrishnan