我有一个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不支持。仅支持初始值设定项,实体成员和实体导航属性。
以前是否有人试图这样做?
提前致谢。