【发布时间】:2015-07-31 10:15:05
【问题描述】:
我有一个包含 4 列的数据库表(客户)
Name
Lastname
StartDate
StopDate
开始和停止日期可以持续几天,即
StartDate StopDate
01.01.2015 00:00 - 01.01.2015 01:00 - Period is 1 hour
01.01.2015 00:00 - 01.05.2015 01:00 - Period is 4 days
01.01.2015 00:00 - 01.10.2015 01:00 - Period is 9 days
我有一个 ASP .Net 日历控件。当用户单击此日历上的日期时,我想以下列方式返回日期
如果选择01.01.2015,则将返回以上所有 3 条记录
如果选择02.01.2015,则仅返回最后两条记录(因为第一条记录现已过期)
如果选择03.01.2015,则仅返回最后两条记录(因为第一条记录现已过期)
如果选择06.01.2015,则只返回最后一条记录(因为前 2 条现已过期)
希望这有意义吗?
所以我尝试执行此操作导致使用 Linq to SQL 时出现一些混乱
Private IQueryable<Insurer> GetInsurers(DateTime UserSelectedDate)
{
return db.Insurers(dt=> dt.StartDate >= UserSelectedDate && dt.StopDate <= UserSelectedDate)
}
我尝试了其他变体,包括互联网上的一些变体,但没有得到结果,这通常意味着我在这里遗漏了一些关键的东西(或者我已经筋疲力尽了)......有什么想法吗?
【问题讨论】:
-
否 - 如果开始日期是 20.01.2015 并且用户选择了 01.01.2015,那么它将显示 20.1.2015 - 但它不应该 - 将其视为 Outlook 中的日历,其中包含一对持久的情侣天。您只会看到您输入的日期内的会议。
标签: c# asp.net linq linq-to-sql