关于SubSonic3.0插件使用SqlQuery或Select查询时产生的System.NullReferenceException异常修复

简介:

 早上在编写执行用例时,突然爆异常System.NullReferenceException: 未将对象引用设置到对象的实例

  执行代码:

  

  

未将对象引用设置到对象的实例。

说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。

源错误: 

行 168:            foreach(Constraint constrain in c)
行 169:            {
行 170:                IColumn column = _provider.FindTable(typeof(T).Name).GetColumnByPropertyName(constrain.ColumnName);
行 171:                constrain.ColumnName = column.Name;
行 172:                constrain.ConstructionFragment = column.Name;


源文件: E:\Asp.net\******\SubSonic.Core\Query\SqlQuery.cs    行: 170 

堆栈跟踪: 

[NullReferenceException: 未将对象引用设置到对象的实例。]
   SubSonic.Query.SqlQuery.Where(Expression`1 expression) in E:\Asp.net\******\SubSonic.Core\Query\SqlQuery.cs:170
   SubSonicTest.Test.Page_Load(Object sender, EventArgs e) in E:\Asp.net\******\SubSonicTest\Test.aspx.cs:19
   System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +51
   System.Web.UI.Control.OnLoad(EventArgs e) +92
   System.Web.UI.Control.LoadRecursive() +54
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +772

  

  通过Debug追踪后,发现SqlQuery类的条件添加函数中,在执行通过反射获取泛型类后,查找条件列名并为条件列赋值时,由于没有找到该列而产生的异常

  对此进行相应修改,添加判断,为null时创建泛型对应的表实体,修改如下:

  

  

  View Code

 

  

  添加完以上代码后,将SubSonic3.0插件源码重新生成一下就可以正常使用了。




    本文转自 AllEmpty 博客园博客,原文链接:

http://www.cnblogs.com/EmptyFS/p/3668121.html

,如需转载请自行联系原作者


相关文章
|
7月前
|
SQL 关系型数据库 数据库连接
Hasor【环境搭建 03】Dataway接口配置服务使用DataQL聚合查询引擎(SQL执行器实现分页查询举例说明+报错 Query dialect missing 原因分析及解决)
Hasor【环境搭建 03】Dataway接口配置服务使用DataQL聚合查询引擎(SQL执行器实现分页查询举例说明+报错 Query dialect missing 原因分析及解决)
152 0
|
Java 测试技术 数据库
【异常】测试自增时数据库报错Springboot-jpa Table ‘sell.hibernate_sequence‘ doesn‘t exist
测试自增时数据库报错Springboot-jpa Table ‘sell.hibernate_sequence‘ doesn‘t exist
93 0
【异常】测试自增时数据库报错Springboot-jpa Table ‘sell.hibernate_sequence‘ doesn‘t exist
|
SQL
★SQL高级教程(2)——Alias、JOIN、INNER JOIN...(建议收藏)★下
★SQL高级教程(2)——Alias、JOIN、INNER JOIN...(建议收藏)★下
130 0
|
SQL 数据库
★SQL高级教程(2)——Alias、JOIN、INNER JOIN...(建议收藏)★上
★SQL高级教程(2)——Alias、JOIN、INNER JOIN...(建议收藏)★上
192 0
|
SQL 关系型数据库 MySQL
软件测试mysql面试题:编写SQL SELECT查询,该查询从Employee_Details表返回名字和姓氏。
软件测试mysql面试题:编写SQL SELECT查询,该查询从Employee_Details表返回名字和姓氏。
117 0
|
SQL 测试技术
abap代码使用sql语句删除自定义表的1条数据
自定义表,指的是abap开发人员使用SE11创建的透明表。既然是自己创建的表,那么增删改查的时候,基本上很自由,至少可以随意使用sql语句对表的内容进行处理。那么,对于这种情况,如何删除数据呢?如下图,是表的内容,红框中的数据,是我们打算删除的内容:删除一条记录。
2141 0

相关课程

更多