gpt4 book ai didi

c# - 在 LINQ 查询中将 DateTimeOffset 转换为 DateTime

转载 作者:行者123 更新时间:2023-11-30 23:11:19 24 4
gpt4 key购买 nike

我的表中有 DateTimeOffset 列,当我通过 linq 查询从该表中获取数据并使用

 (from c in this.dbContext.SomeTable
where c.Id == someId
select new SomeModel()
{
Id = c.Id,
Name = c.Name,
StartDate = c.StartDate.DateTime // <-- problematic line
}

在我的选择中,出现以下异常:

The specified type member 'DateTime' is not supported in LINQ to Entities

是否可以在查询中获取数据时将 DateTimeOffset 转换为 DateTime?为此,我在 DbFunctions 中看不到任何函数。我是否必须使用 DateTimeOffset 获取数据并执行:

data.StartDate = data.StartDate.DateTime

必须有更简单的解决方案

最佳答案

由于投影(即 Select)是链中的最后一个操作,您可以在执行之前将数据传输到内存。这样您就不需要 LINQ to Entities 的支持:

res = this.dbContext.SomeTable
.Where(c => c.Id == someId)
.AsEnumerable() // The following "Select" run in memory
.Select(c => new SomeModel {
Id = c.Id
, Name = c.Name
, StartDate = c.StartDate.DateTime // No problem here
});

关于c# - 在 LINQ 查询中将 DateTimeOffset 转换为 DateTime,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44757384/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com