【问题标题】:MissingFieldException when querying a table with ServiceStack.OrmLite ServiceStack使用 ServiceStack.OrmLite ServiceStack 查询表时出现 MissingFieldException
【发布时间】:2016-08-27 04:18:57
【问题描述】:

我收到了一个用于多个 OrmLite 操作的 MissingFieldException

using (var db = DbFactory.Open())
{
    var exp = db.From<Product>();

    if (filter.Field1 != null)
        exp.Where(w => w.Field1 == filter.Field1);

    if (filter.Field2 != null)
        exp.Where(w => w.Field2 == filter.Field2);

    return db.LoadSelect(exp);
}

也发生在简单的 AutoQuery RDBMS 服务中。

[Api("Query.")]
[Route(“/query, "GET")]
public class QueryTransaction : QueryDb<Transaction, TransactionQueryRecord>,
    IJoin<Transaction, Application>
{
    [ApiMember(IsRequired = false, ParameterType = "query")]
    public string TimeZoneId { get; set; }
}

堆栈跟踪如下:

System.MissingFieldException:找不到字段:'ServiceStack.OrmLite.OrmLiteConfig.UseParameterizeSqlExpressions'。 在 ServiceStack.OrmLite.SqlServer.SqlServerOrmLiteDialectProvider.SqlExpression[T]() 在 ServiceStack.OrmLite.OrmLiteExecFilter.SqlExpression[T](IDbConnection dbConn) 在 ServiceStack.OrmLite.OrmLiteReadExpressionsApi.From[T](IDbConnection dbConn) 在 ServiceStack.TypedQuery`2.CreateQuery(IDbConnection db,IQueryDb dto,Dictionary`2 dynamicParams,IAutoQueryOptions 选项) 在 ServiceStack.AutoQuery.CreateQuery[From,Into](IQueryDb`2 dto, Dictionary`2 dynamicParams, Request req

我认为OrmLite正在尝试查找属性配置OrmLiteConfig.UseParameterizeSqlExpressions,但它在v.4.0.60版本中不存在

当我使用 AppSelfHostBase 运行集成测试时,一切正常,但是当我在浏览器中尝试时,有时会正常工作,有时会抛出异常。

【问题讨论】:

    标签: servicestack ormlite-servicestack


    【解决方案1】:

    像这样缺少方法或字段异常表明您将脏 .dlls 与不同版本混合并匹配在一起。 OrmLiteConfig.UseParameterizeSqlExpressions 不久前在 OrmLite 切换到使用参数化查询后被删除,此错误表明您有一个旧的 .dll 引用它。

    当您升级 ServiceStack 项目时,您需要升级所有依赖项并确保所有 ServiceStack 依赖项都引用相同版本(例如 v4.0.60 或当前最新的 v4 .5.0)。您可以检查 NuGet /packages 文件夹以查看您的解决方案使用的不同版本。删除除最新版本之外的所有版本并重新构建您的解决方案将显示构建错误,显示哪些项目仍在引用旧包,您需要更新这些包,以便所有项目都使用相同的版本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-12-31
      • 2022-12-14
      • 2015-12-20
      • 1970-01-01
      • 2015-07-18
      • 1970-01-01
      • 2019-12-19
      相关资源
      最近更新 更多