类型' System.Data.Entity.Core.EntityCommandExecutionException'的第一次机会异常。发生在EntityFramework.SqlServer.dll中

时间:2014-08-30 12:20:35

标签: asp.net-mvc-5 entity-framework-6

我正在尝试使用实体框架6调用存储过程。我在输出消息上收到错误。

  

类型' System.Data.Entity.Core.EntityCommandExecutionException'的第一次机会异常。发生在EntityFramework.SqlServer.dll

 using (var context = new PartnerPortalEntities2())
 {
    var outputParameter = new ObjectParameter("result", typeof(string));
    var spresults = context.assignRoles_CreateAccountAndContacts(user.Id, role, user.AccountId, user.AccountName, user.ContactId, user.FirstName, user.LastName, outputParameter);
    // Control never comes after the above line
    if(spresults.Equals("1"))
    {
       //Do something
    }
    else
    {
        // Do something
    }

    }

当我进行调试时,控件进入调用存储过程的行,之后我们在输出窗口上得到上述错误并且调试器停止,它永远不会进入if语句。

我已经在SQLserver上运行存储过程,它在那里工作正常。任何想法可能是错误。我通过从数据库生成代码来构建上下文。

2 个答案:

答案 0 :(得分:2)

正如@Shoe所建议的,我已经在try catch块中嵌入了对存储过程的调用,该块捕获了异常并显示了确切的错误。

原来,我没有将确切的变量作为输出参数传递。将结果更改为结果,因为存储过程中定义的变量是结果

var outputParameter = new ObjectParameter("result", typeof(string));

答案 1 :(得分:0)

我遇到了同样的错误,我设法修复了它!

此错误可能是其他原因造成的,但导致此错误的原因是SQL Server未配置为接受来自我的调试站的传输 - 我必须在Sql server设置中配置我的计算机的IP然后它运作得很好。

希望它有所帮助。