我正在使用 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/