>我正在尝试将存储为字符串的 24 小时时间格式与当前时间进行比较,如下所示
[AllowAnonymous]
public ActionResult _ProgOn()
{
int i = (int)DateTime.Now.DayOfWeek;
DateTime dt = DateTime.Now;
var onNow = db.Programs
.Where(u => u.PrOk == true)
.Where(u => u.DaId == i)
.Where(u => u.TimeOn == dt.ToString("HH:mm"));
return PartialView(onNow);
但这似乎是 Linq 查询无法接受的。 如果我被指出正确的方向,我将不胜感激。
将时间字符串传递给 Linq 查询:
int i = (int)DateTime.Now.DayOfWeek;
string time = DateTime.Now.ToString("HH:mm");
var onNow = from u in db.Programs
where u.PrOk &&
u.DaId == i &&
u.TimeOn == time
select u;
return PartialView(onNow);
此外,您不需要将布尔值与真/假进行比较。我认为查询语法在这里看起来更好。
Linq只能使用它能翻译的内容。 尝试将DateTime
转换为string
,然后进行比较:
[AllowAnonymous]
public ActionResult _ProgOn()
{
string t = dt.ToString("HH:mm");
int i = (int)DateTime.Now.DayOfWeek;
DateTime dt = DateTime.Now;
var onNow = db.Programs
.Where(u => u.PrOk == true)
.Where(u => u.DaId == i)
.Where(u => u.TimeOn == t);
return PartialView(onNow);