gpt4 book ai didi

c# - LINQ to Entities 不支持指定的类型成员 'Date'。(使用 Sqlie)

转载 作者:行者123 更新时间:2023-12-01 22:17:13 42 4
gpt4 key购买 nike

enter image description here > System.NotSupportedException:“指定的类型成员‘Date’不是

supported in LINQ to Entities. Only initializers, entity members, and entity navigation properties are supported.”

我使用EntityFramework6从Sqlie查询,有一些关于日期时间的磨损。

var test = DateTime.Now.Date;
var maxEntity=_baseService.GetList<TestNoMapping>(o => o.LastChangeTime.Date == test)
.OrderByDescending(o => o.SampleId)
.FirstOrDefault();
public class BaseService
{
private readonly BaseContext _baseContext = new BaseContext();


public List<T> GetList<T>(Expression<Func<T, bool>> where) where T : class
{
return _baseContext.Set<T>().Where(where).ToList();
}

DbFunctions.TruncateTime我试过了,但是没用

最佳答案

您在这里可以做的最好的事情就是用范围测试替换条件:日期介于昨晚午夜和今天午夜之间:

var minDate = DateTime.Today;
var maxDate = minDate.AddDays(1);
var maxEntity = _baseService
.GetList<TestNoMapping>(o => o.LastChangeTime >= minDate
&& o.LastChangeTime < maxDate)
.OrderByDescending(o => o.SampleId)
.FirstOrDefault();

原因是在比较之前转换数据库值从来都不是一个好主意:它会禁用列上的任何索引。 (参见sargable)。

关于c# - LINQ to Entities 不支持指定的类型成员 'Date'。(使用 Sqlie),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45344527/

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