servicestack - Service.OrmLite 中的谓词错误地返回枚举值

标签 servicestack ormlite-servicestack

我正在使用 ServiceStack.OrmLite(版本 3.8.5)并且我有以下内容:

var report = dbCommand.Select<UploadedMediaReport>(x => x.Id == message.Id &&
                       (int)x.BitRate == (int)message.BitRate &&
                       (int)x.MediaFormat == (int)message.Format
                        ).FirstOrDefault();

哪里

public class UploadedMediaReport
{
    public MediaBitRate BitRate { get; }
    public MediaFormat Format { get; }
    ..
}

对于生成的 SQL,使用枚举的字符串值而不是 int 值,即。错误的SQL是:

  select ... bitRate = 'High' and Format = 'MP4'

它应该在哪里

  select ... bitRate = 1 and Format = 3

如何更改它才能使其正常工作?

最佳答案

我不确定您所看到的是否是错误,但可能的解决方法是:

var report = dbCommand.Where<UploadedMediaReport>(
    new {
        Id = message.Id,
        BitRate = (int)message.BitRate,
        MediaFormat = (int)message.Format
    }).FirstOrDefault();

关于servicestack - Service.OrmLite 中的谓词错误地返回枚举值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16123899/

相关文章:

mono - 在 Mono + FastCGI 中托管 ServiceStack 时二进制数据损坏

c# - 用户注册时未设置 BirthDate 和 BirthDateRaw

c# - 我可以将这三个相似的函数合并为一个函数吗?

sqlite - 使用 Sqlite64 作为内存数据库的 ServiceStack OrmLite 导致身份验证表丢失

c# - ServiceStack,业务逻辑放在哪里?

routing - ServiceStack 路由不适用于查询字符串

c# - Oracle 存储过程适用于 ADO.NET,但使用 OrmLite 会引发异常?

redis - Servicestack Authentication IsAuthenticated 始终为 false

servicestack - 使用OrmLite,是否可以通过修改POCO来自动更新表架构?

servicestack - 在 ServiceStack Ormlite 中加载具有特定 orderby 的引用