早上在编写执行用例时,突然爆异常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,如需转载请自行联系原作者