2014-08-30 102 views
4

我想打电话给使用实体框架6.我上输出消息的错误的存储过程。型“System.Data.Entity.Core.EntityCommandExecutionException”的第一次机会异常出现在EntityFramework.SqlServer.dll

型“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

把存储过程在一个try/catch并期待在例外。 – Shoe 2014-08-30 19:45:13

+0

谢谢@Shoe,try catch帮我解决了问题所在。我是路过的输出变量在我的SP – Prady 2014-09-01 10:14:51

+0

如果你已经解决了你的问题一定要与解决方案,你把实现它相关的措施来解决。 – Shoe 2014-09-04 04:17:49

回答

1

正如@Shoe所建议的那样,我将存储过程的调用嵌入到try catch块中,该块捕获异常并显示确切的错误。

它原来是,我是不是经过精确变量作为输出参数。将结果更改为结果,因为存储过程中定义的变量为结果

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

我刚刚发生同样的错误,我设法修复它!

此错误可能是由于其他原因造成的,但造成此错误的原因是SQL服务器未配置为接受来自我的调试工作站的传输 - 我必须在Sql服务器设置中配置我的计算机的IP然后它完美地工作。

希望它有帮助。

+0

其他人试试这个解决方案? – Sizons 2015-07-28 09:20:46

相关问题