Sna*_*ops 8 c# asp.net-mvc stored-procedures dbcontext
我有以下是抛出一个SqlParameter已经被catch块中的另一个SqlParameterCollection异常包含.
我觉得奇怪的是,我们无处可创造一个SqlParameterCollection.每次我们创建一个新实例,所以SqlParameter从不使用过多次.另一个奇怪的是,它test包含来自存储过程的正确结果,并将结果返回给调用方法,但是当我再次从第一行3开始执行4时,它决定进入catch块.不在33我期望它发生的位置...如果它帮助我们使用CodeFirst生成工具从ObjectContexta 切换到a DbContext.使用的所有其他数据库交互和存储过程都按预期工作.
1 try
2 {
3 tempMessages = Context.CheckExistingTables(importSession.ImportSessionID).ToList();
4 }
5 catch (Exception e)
6 {
7 this.LogError("Error validating the import file entities", e);
8 tempMessages.Add(new ErrorMessage() { ErrorType = 3, Message = string.Format("Error validating the import file entities: {0}", e.Message) });
9 }
...
20 public IEnumerable<ErrorMessage> CheckExistingTables(Guid? importSessionID)
21 {
22 SqlParameter importSessionIDParameter;
23
24 if (importSessionID.HasValue)
25 {
26 importSessionIDParameter = new SqlParameter("importSessionID", importSessionID);
27 }
28 else
29 {
30 importSessionIDParameter = new SqlParameter("importSessionID", typeof(System.Guid));
31 }
32
33 var test = Database.SqlQuery<ErrorMessage>("Import.CheckExistingTables @importSessionID", importSessionIDParameter);
34 return test;
35 }
Run Code Online (Sandbox Code Playgroud)
Sna*_*ops 19
所以不知何故,答案是.ToList()在最后一行打电话33.
其他人请注意......将using语句添加using System.Linq;到文件顶部,否则您将无法ToList()选择.
| 归档时间: |
|
| 查看次数: |
8866 次 |
| 最近记录: |