【发布时间】:2020-07-13 02:14:06
【问题描述】:
var res = Context.Exampletable
.Where(s => s.CompanyId == CompanyId &&
Convert.ToDateTime(s.TextDate) >= DateTime.Now)
.Select(x => new Exampletable { TextDate = x.TextDate })
.FirstOrDefault();
这是我的问题陈述之一的 Linq。我想从当前日期和时间戳中获取记录未来的日期记录,因此我将其转换并与Datetime 进行比较,但出现此错误:
LINQ 表达式 'DbSet
.Where(a => Convert.ToDateTime(a.TextDate) > Convert.ToDateTime(DateTime.Now))' > 无法翻译。以可翻译的形式重写查询,或通过插入对 AsEnumerable()、AsAsyncEnumerable()、ToList() 或 ToListAsync() 的调用显式切换到客户端评估
注意:在 Postgresql DB 中,TextDate 列具有字符串数据类型并包含诸如“4/1/2020 10:00 AM”之类的值。
请为此提供解决方案。
【问题讨论】:
-
它不起作用,因为 Postgresql 的 LINQ to Entities 实现不知道如何将
Convert.ToDateTime(string)转换为 SQL
标签: entity-framework linq entity-framework-core postgresql-9.1 ef-core-3.0