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

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


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值