我在ASP.NET MVC C#中创建Web Scheduler。所以,我在Controller中创建了Action ActionResult,如下所示:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "ID,NomeResponsavelEvento,NomeEvento,DataInicioEvento,HorarioInicioEvento,DataFinalEvento,HorarioFinalEvento")] Evento evento)
{
var teste = from x in db.Eventos where x.HorarioInicioEvento.Hour.Equals(evento.HorarioInicioEvento.Hour) select x;
if (ModelState.IsValid)
{
db.Eventos.Add(evento);
db.SaveChanges();
return RedirectToAction("Index");
}
else
{
TempData["ErroHorarioExistente"] = "Já possui um evento no horário informado! Tente outro horário.";
return RedirectToAction("Index");
}
return View(evento);
}
我想要做的是检查(使用if语句),如果在DB中已经有同一小时的事件:新创建表单事件的分钟。我在" var teste"中使用了一些断点。但它始终显示null,即使已经在DB中具有与我的表单相同的DateTime的事件。当我在这个问题中尝试做另外一个例子:How to check if a record already exists in the db using asp.Net MVC
我可以将其作为:db.Eventos.Any(ag => ag.DataInicioEvento == evento.DataInicioEvento),但此方法只检查某个日期是否相等,然后返回true,已经有一个同一天,它的工作原理。但是我需要它来工作一小时:分钟
答案 0 :(得分:3)
首先,你应该在var teste = ...
之后放置刹车点,因为在行执行之前,断点会停止。接下来,如果你想要相同的小时和分钟,你可以做:
var teste = db.Eventos.Where(ag =>
ag.DataInicioEvento.Hour == evento.DataInicioEvento.Hour
&& ag.DataInicioEvento.Minute == evento.DataInicioEvento.Minute
)