关于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

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


相关文章
|
2月前
|
SQL 应用服务中间件 数据库
关于 ABAP OPEN SQL SELECT 语句的一些额外说明
关于 ABAP OPEN SQL SELECT 语句的一些额外说明
|
2月前
|
数据库
SQLSERVER 2014 删除数据库定时备份任务提示失败DELETE 语句与 REFERENCE 约束“FK_subplan_job_id“冲突
SQLSERVER 2014 删除数据库定时备份任务提示失败DELETE 语句与 REFERENCE 约束“FK_subplan_job_id“冲突
|
XML SQL Java
如何去寻找解决bug?(以Mapped Statements collection does not contain value for xxx的异常为例)
如何去寻找解决bug?(以Mapped Statements collection does not contain value for xxx的异常为例)
如何去寻找解决bug?(以Mapped Statements collection does not contain value for xxx的异常为例)
|
SQL 关系型数据库 MySQL
软件测试mysql面试题:编写SQL SELECT查询,该查询从Employee_Details表返回名字和姓氏。
软件测试mysql面试题:编写SQL SELECT查询,该查询从Employee_Details表返回名字和姓氏。
92 0
|
SQL XML Java
MyBatisPlus中使用SELECT关联查询时未添加别名报异常的问题分析与修复
本文记录了在使用MyBatis表写入自定义的SQL查询语句时发生的异常问题。当定义使用include对主表中的字段进行包装时,在之后需要用到使用主表的关联查询,要将整个主表中include包装的字段都添加上别名,否则就会报错。本文记录在第一次使用MyBatisPlus框架时遇到的问题,是一次踩坑经验,希望帮助大家避免这样的坑。
1143 0
MyBatisPlus中使用SELECT关联查询时未添加别名报异常的问题分析与修复
|
SQL 测试技术 索引
SQL性能调优实践——SELECT COUNT
最近想深入学习SQL,在网上搜索到一些SQL 优化的资料要么是张冠李戴,Oracle 优化的资料硬是弄成啦MS SQL 优化的资料,而且被很多人转载,收藏,有些要么有些含糊不清,好像是那么回事,也没经过验证,实践出真知!下面是我对SELECT COUNT(*), SELECT COUNT(1),SELECT COUNT (0), SELECT COUNT(Field)等孰优孰劣的测试结果,如果测试方法有什么不足,也希望大家给点建议。
1304 0
|
SQL Go 数据库
MS SQL巡检系列——检查外键字段是否缺少索引
原文:MS SQL巡检系列——检查外键字段是否缺少索引 前言感想:一时兴起,突然想写一个关于MS SQL的巡检系列方面的文章,因为我觉得这方面的知识分享是有价值,也是非常有意义的。一方面,很多经验不足的人,对于巡检有点茫然,不知道要从哪些方面巡检,另外一方面,网上关于MS SQL巡检方面的资料好像也不是特别多。
848 0