Zapytanie LINQ

0

Witam,
Prośba o pomoc z zapytaniem. Mój model:
Surname, Name, StartDateJobe, StartHourJob, EndHourJob.
W kontrolerze napisałem funkcję StartJob, która dodaje do tabeli dane zalogowanego użytkownika wraz z aktualną datą i godziną. Działała by dobrze, gdybym poprawnie zakodował warunek, że jeżeli istnieje rekord w tabeli o takie samej dacie i nazwisku to zwracany jest błąd. Niestety po wielu "kombinacjach" nie udaje mi się to.
Kod z kontrolera:

 public async Task<IActionResult> StartJob([Bind("Name,Surname,StartJobDate,StartJobHour,EndJobHour")] Ecp ecp)
        {
            string name = GetName();
            string surname = GetSurname();
            DateTime startDateTime = DateTime.Today;

            var checkStartJobTodayQuery = from e in _context.Ecps
                                          where e.StartJobDate == startDateTime
                                          && e.Name == name
                                          && e.Surname == surname
                                          select e;

            try
            {
                ecp.Name = GetName();
                ecp.Surname = GetSurname();
                ecp.StartJobDate = DateTime.Today;
                ecp.StartJobHour = DateTime.Now;

                if (ModelState.IsValid && checkStartJobTodayQuery == null)
                {
                    _context.Add(ecp);
                    await _context.SaveChangesAsync();
                }
                else
                {
                    ViewBag.Message = string.Format("Już pracujesz");
                }

            }
            catch(Exception)
            {
                throw;
            }
            return RedirectToAction(nameof(Index));
        }

Z góry serdeczne dzięki za pomoc

0

Twoje zapytanie zwraca IQueryable<Ecp>. Wydaje mi się, że jeżeli ten obiekt nie zawiera żadnych elementów to nie będzie null.

if (ModelState.IsValid && checkStartJobTodayQuery.Count() == 0)
{
   //...
}
0
AdamWox napisał(a):

Twoje zapytanie zwraca IQueryable<Ecp>. Wydaje mi się, że jeżeli ten obiekt nie zawiera żadnych elementów to nie będzie null.

if (ModelState.IsValid && checkStartJobTodayQuery.Count() == 0)
{
   //...
}

Wielkie dzięki!

1 użytkowników online, w tym zalogowanych: 0, gości: 1