使用Dynamic Linq按datetimeoffset列

时间:2018-04-30 17:16:19

标签: c# linq entity-framework-6 dynamic-linq

我正在使用DynamicLinq dll执行动态linq,其中我发送的动态过滤器的构造方式如下所示

"CreatedDate=System.DateTimeOffset.Parse(\"2017-11-17 22:07:04.9192538 +00:00\")",

但是,我收到系统不存在的错误。但是,我也试过以下但没有运气。

"CreatedDate=(\"2017-11-17 22:07:04.9192538 +00:00\")",

但收到以下消息

  

运算符'='与操作数类型'DateTimeOffset'和'字符串'(在索引11处)不兼容

使用动态linq和EF过滤日期时间偏移列的正确方法是什么?

代码

IQueryable<T> query = Set<T>();

if (!string.IsNullOrEmpty(filter))
    query = Dynamic.DynamicQueryable.Where(query, filter);

1 个答案:

答案 0 :(得分:0)

如果将字符串解析为DateTimeOffset对象,如:

var dateTime = DateTimeOffset.Parse("2017-11-17 22:07:04.9192538 +00:00")

然后你可以使用它:

query.Where("CreatedDate==DateTimeOffset(@0)", dateTime)