我正在尝试使用实体框架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上运行存储过程,它在那里工作正常。任何想法可能是错误。我通过从数据库生成代码来构建上下文。
答案 0 :(得分:2)
正如@Shoe所建议的,我已经在try catch块中嵌入了对存储过程的调用,该块捕获了异常并显示了确切的错误。
原来,我没有将确切的变量作为输出参数传递。将结果更改为结果,因为存储过程中定义的变量是结果
var outputParameter = new ObjectParameter("result", typeof(string));
答案 1 :(得分:0)
我遇到了同样的错误,我设法修复了它!
此错误可能是其他原因造成的,但导致此错误的原因是SQL Server未配置为接受来自我的调试站的传输 - 我必须在Sql server设置中配置我的计算机的IP然后它运作得很好。
希望它有所帮助。