无法查询(过滤/选择)EF计算的DateTimeOffset属性

时间:2017-11-09 19:03:09

标签: c# .net asp.net-web-api entity-framework-6 odata

我有一个WebAPI2 V4 OData控制器,可以公开我的EF数据模型。其中一个模型上有DateTime属性,isn't supported by OData V4

我在我的EF模型上添加了一个自定义计算DateTimeOffset属性,其中包含getter和空setter,它只转换日期时间。我还在我的代码第一个模型构建器中添加了一个排除项,以忽略这个新属性。我从this Microsoft discussion得到了这个建议。

public DateTimeOffset DateOfBirthOffset
{
    get
    {
        return new DateTimeOffset(this.DateOfBirth);
    }
    set { }
}

在DbCOntext OnModelCreating ...

modelBuilder.Entity<PortalUser>().Ignore(pu => pu.DateOfBirthOffset);

当我查询API时,这确实会成功返回新属性:

baseuri:port/odata/Users

但是当我尝试过滤或选择时:

baseuri:port/odata/Users?$filter=DateOfBirthOffset lt 2010-01-25T02:13:40.1374695Z

我收到以下错误:

指定的类型成员&#39; DateOfBirthOffset&#39; LINQ to Entities不支持。仅支持初始值设定项,实体成员和实体导航属性。

以前是否有人试图这样做?

提前致谢。

0 个答案:

没有答案