gpt4 book ai didi

c# - LINQ - 如何查询只有开始日期的有效日期范围

转载 作者:行者123 更新时间:2023-11-30 21:21:33 28 4
gpt4 key购买 nike

我正在使用 C# 3.5 和 EntityFramework。我在数据库中有一个包含利率的项目列表。不幸的是,此列表仅包含有效开始日期。我需要查询此列表中某个范围内的所有项目。

但是,如果不查询数据库两次,我无法找到执行此操作的方法。 (虽然我想知道使用 EntityFramework 延迟执行是否只进行一次调用。)无论如何,我想知道我是否可以在不使用我的上下文两次的情况下做到这一点。

internal IQueryable<Interest> GetInterests(DateTime startDate, DateTime endDate)  {
var FirstDate = Context.All().Where(x => x.START_DATE < startDate).Max(x => x.START_DATE);
IQueryable<Interest> listOfItems = Context.All().Where(x => x.START_DATE >= FirstDate && x.START_DATE <= endDate);
return listOfItems;
}

最佳答案

如果可以使用 LINQ 查询,则可以使用 let 来执行此操作:

(from c in dbContext.Table
let firstdate = dbContext.Table.Max(i => c.StartDate < startDate)
where c.StartDate >= firstdate
and c.StartDate <= enddate
select c)

我不确定 max 是否会以这种方式工作,因此您可能需要另外做:

(from c in dbContext.Table
let firstdate = dbContext.Table.Select(i => i.StartDate).Max(i => c.StartDate < i)
where c.StartDate >= firstdate
and c.StartDate <= enddate
select c)

类似的东西。

关于c# - LINQ - 如何查询只有开始日期的有效日期范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2656272/

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