Bonjour.

Voilà, je fais une appli en codefirst, et voici la première fois de ma vie que j'essaie d’appeler une procédure stockée. Ça ne pouvait que planter ^^.

mon code c# :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
public static bool StoredProcedure_CheckUserName(string UserName)
        {
            bool IfExists = false;
 
            using (LivDevisContext db = new LivDevisContext())
            {
                SqlParameter pUserName = new SqlParameter("@UserName", UserName);
                IfExists = db.Database.SqlQuery<bool>("CheckUserName @UserName", pUserName).FirstOrDefault();
            }
 
            return IfExists;
        }
ma procédure :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
USE [LivDevis]
GO
/****** Object:  StoredProcedure [dbo].[CheckUserName]    Script Date: 26/12/2012 09:55:57 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
ALTER PROCEDURE [dbo].[CheckUserName]
	-- Add the parameters for the stored procedure here
	@UserName nvarchar(30)
AS
BEGIN
	DECLARE @NbUser BIT
 
    SELECT @NbUser = Count(*)
	FROM [dbo].[User]
	WHERE [dbo].[User].[UserName] = @UserName;
 
	IF @NbUser = 1
	BEGIN
		RETURN 0
	END
 
	RETURN 1
END
mon erreur :
Le lecteur de données possède plusieurs champs. Plusieurs champs ne sont pas valides pour des types primitifs ou des types énumération EDM.
Qu'ai-je raté ? Merci