2016-04-28 11 views
0

申し訳ありませんが、問題に近いブログを多数読んだ後でもエラーを説明できません。ExecuteStoreQueryはSystem.Data.Entity.Core.EntityCommandExecutionExceptionをスローします

私は次のように私はそれを呼び出しています次のストアドプロシージャ

CREATE PROCEDURE dbo.AddUserToRole 
    @UserName nvarchar(256), @RoleId nvarchar(128), 
    @UserId nvarchar(128) OUTPUT 
AS 
BEGIN 
    SET NOCOUNT ON; 
    SELECT @UserId = Id FROM dbo.AspNetUsers WHERE dbo.AspNetUsers.UserName = @UserName 
    INSERT INTO dbo.AspNetUserRoles (UserId,RoleId) VALUES(@UserId,@RoleId) 
END 
GO 

あります

var userNameParameter = new SqlParameter("UserName", userName); 
var roleIdParameter = new SqlParameter("RoleId", roleId); 
string userId = ""; 
var UserIdParameter = new SqlParameter("UserId", userId); 
UserIdParameter.Direction = System.Data.ParameterDirection.Output; 
((IObjectContextAdapter)this).ObjectContext.ExecuteStoreQuery<string>("AddUserToRole @UserName, @RoleId, @UserId", userNameParameter, roleIdParameter, UserIdParameter); 

を私は例外 次のデータリーダーが複数のフィールドを持って取得します。複数のフィールドは、EDMプリミティブまたは列挙型には有効ではありません。

もう一度申し訳ありませんが、私は助けていただければ幸いです。私はちょうど修正を望んでいないが、私は正確な問題が何であるか理解したい。

おかげ

答えて

0

この

ExecuteStoreQuery<string>("Exec AddUserToRole @UserName, @RoleId, @UserId", userNameParameter, roleIdParameter, UserIdParameter); 
+0

を行うようにしてくださいおかげマハディが、それは私に同じエラーを与えています。私はEF6を使用しています。 –

+0

あなたのspの文字列の値を返してみてください。 挿入後、 "foo"を選択してください。 –

関連する問題