我在应用程序中使用OrmLite进行数据访问。在4个环境中的3个环境中,一切都按预期工作。
所有环境都在运行.net 4.5。数据库运行的版本不同。失败的环境是连接到sql server 10.50.2796,工作环境连接到sql server 10.50.4000。
System.Data *程序集的版本在不起作用的服务器上是相同的。
堆栈跟踪:
System.NullReferenceException:未将对象引用设置为对象的实例。 在lambda_method(Closure,Object,Object) 在ServiceStack.OrmLite.ReadExtensions.ConvertToList [T](IDataReader dataReader)中 C:\ src \ ServiceStack.OrmLite \ src \ ServiceStack.OrmLite \ Expressions \ ReadExtensions.cs:第151行 at ServiceStack.OrmLite.ReadExtensions.Select [T](IDbCommand dbCmd,Expression
1 predicate) in C:\src\ServiceStack.OrmLite\src\ServiceStack.OrmLite\Expressions\ReadExtensions.cs:line 23 at ServiceStack.OrmLite.ReadConnectionExtensions.Exec[T](IDbConnection dbConn, Func
2 filter)在C:\ src \ ServiceStack.OrmLite \ src \ ServiceStack.OrmLite \ Expressions \ ReadConnectionExtensions.cs:第26行
更新 我认为这是与我连接的sql server版本相关的错误。如果我在工作环境中更改连接字符串以使用运行10.50.2796的数据库,我会遇到同样的错误。
TIA, 杰森
答案 0 :(得分:6)
此错误发生在数据库中的b / c字段包含空值,并且相应的模型字段不可为空。我会尝试深入挖掘并为OrmLite团队提供一些测试。数据库版本是一个红色的鲱鱼。