0
我正在使用Web API + AbpOData + EF并需要计算从服务器上的数据库返回的对象的某些属性。带定制计算属性的ABPOData + EF模型
基本的代码看起来是这样的:
[AbpApiAuthorize(AppPermissions.OData_Permission_Consume)]
public class ActivityLogsController : AbpODataEntityController<ActivityLogs>
{
[EnableQuery(PageSize = 50000)]
public override IQueryable<ActivityLogs> Get()
{
var objectContext = new MyObjectContext(); //EF
return objectContext.ActivityLogs.GetAll();
}
}
我只是从数据库中返回值,所有的罚款。
但我需要的是将两个日期时间值转换为本地时间。像下面
[AbpApiAuthorize(AppPermissions.OData_Permission_Consume)]
public class ActivityLogsController : AbpODataEntityController<ActivityLogs>
{
[EnableQuery(PageSize = 50000)]
public override IQueryable<ActivityLogs> Get()
{
var objectContext = new MyObjectContext(); //EF
return objectContext.ActivityLogs.Select(d => new ActivityLogs()
{
Id = d.ID,
Activity = d.Activity,
StartTime = d.StartTime.Value.AddHours(5),
EndTime = d.EndTime.Value.AddHours(5),
Duration = d.Duration
});
}
}
我收到以下错误
实体或复杂类型“ActivityLogs”不能在LINQ到实体查询构造。
如何我可以impliment这使用abp odata框架(.net零)。请记住,我们需要返回从EF调用返回的相同的IQueryable。
感谢您的回复。基本上,我想将开始时间和结束时间转换为客户端本地时间(每个客户端时区存储在设置表中)。基于客户的时间将会改变。所以我不能使用第一个选项。这个API在Power BI中使用,所以第二个选项也不可行。 –