所以, 的问题: SQL Server 2012中的TRY / CATCH语句吞下我想要传递或重新抛回EF 5.0的异常。 只要异常没有Try / catch,.NET代码就可以毫无问题地获得它。
尝试解决: 1. FOR SQL SERVER SIDE:我们尝试使用THROW / RAISEERROR,在Try / Catch块内外引发异常,记录原始错误并重新抛出它。 2.从.NET SIDE尝试按计划重载" ExecuteSprocAccessor"并改回基本代码 " ... SqlDataAdapter dataadap = new SqlDataAdapter(command); dataadap.Fill(DT); " 没有任何效果 3.另一个选择 - 猜测 - 是考虑SQL SERVER中可能阻止它的一些参数 - 不知道在哪里看
解决方案: 寻求帮助并建议原始如何设法压制TRY / Catch行为。 谢谢!
答案 0 :(得分:0)
我们花了一天时间进一步尝试深入了解它,并且意外地找到了临时解决方案。 由于没有初步回复,我将此作为解决方案发布。虽然,它更像是一个临时解决方案。 “db.ExecuteDataSet(dbc)” 的使用工作正常,提供了从Catch块从SQL Server 2012传递的异常的相关处理。对于我们来说,它表明在新版本中使用EL6.0和/或ADO.NET时我们还不知道一些技巧或问题
*using ( DbCommand dbc = db.GetStoredProcCommand("[Personnel].[uspWebLogin]"))
{
db.AddInParameter(dbc, "UserLogin", DbType.String, user.UserLogin);
db.AddInParameter(dbc, "UserPassword", DbType.String, user.Password);
DataSet ds = db.ExecuteDataSet(dbc);
DataTableReader dtr = ds.CreateDataReader();
// string count just to check theat the core query actualy worked when there is no exception
string count = dtr.FieldCount.ToString();
......
return new WebUser();
}*
现在的问题是如何优化对象和返回集的最佳映射,而不是编写“ExecuteSprocAccessor”和“IRowMapper”为我们做的代码堆。
感谢阅读。任何进一步的意见或建议仍然受到欢迎。欢呼声。