Witam,
Chciałbym prosić was o pomoc przy budowie zapytań do bazy danych.
Zacznę może od zaprezentowania 3 wersji kodu do pobrania danych w relacji wiele do wielu.
var query = (from s in db.Spectacles
select new SpectacleDTO
{
Id = s.Id,
Name = s.Name,
Directors = s.Directors.Select(x => new DirectorDTO
{
Id = x.Id,
FirstName = x.FirstName,
SecondName = x.SecondName,
LastName = x.LastName
}),
Time = s.Time.ToString().Remove(s.Time.ToString().Length-3)
}).ToList();
return query;
var result = new List<SpectacleDTO>();
var spectacles = await db.Spectacles.ToListAsync();
var directors = await db.Directors.ToListAsync();
foreach (var row in spectacles)
{
result.Add(new SpectacleDTO()
{
Id = row.Id,
Name = row.Name,
Directors = directors.Where(x => row.Directors.Any(y => y.Id.Equals(row.Directors))).Cast<DirectorDTO>().ToList(),
Time = row.Time.ToString(@"hh\:mm")
});
}
return result;
return db.Spectacles.Select(x => new SpectacleDTO
{
Id = x.Id,
Name = x.Name,
Directors = x.Directors.Select(y => new DirectorDTO
{
Id = y.Id,
FirstName = y.FirstName,
SecondName = y.SecondName,
LastName = y.LastName
}),
Time = x.Time.ToString().Remove(x.Time.ToString().Length-3)
}).ToList();
Nie wiem, który z tych kodów jest najlepszy i zakładam, że można to zrobić jeszcze lepiej. Dlatego prosiłbym o pomoc w zbudowaniu czegoś, co jest dobre do wykorzystania w pracy ;)
Pozdrawiam