Fiz o que foi sugerido na aula 5 atividade 8, mas quando tentei exibir o nome do artista da música, obtive um erro :
Unhandled exception. System.InvalidOperationException: There is already an open DataReader associated with this Connection which must be closed first.
Acredito que deve ser por ter um artistaDAL em uso.
Como faço para resolver isso?
Segue o código abaixo:
internal class MenuMostrarPorAnoLancamento : Menu
{
public override void Executar(DAL<Artista> artistaDAL) {
base.Executar(artistaDAL);
ExibirTituloDaOpcao("Mostrar musicas por ano de lançamento");
Console.Write("Digite o ano para consultar músicas:");
string anoLancamento = Console.ReadLine()!;
var musicaDal = new DAL<Musica>(new ScreenSoundContext());
var listaAnoLancamento = musicaDal.RecuperarListaPor(a => a.AnoLancamento == Convert.ToInt32(anoLancamento));
if (listaAnoLancamento.Any())
{
Console.WriteLine($"\nMusicas do Ano {anoLancamento}:");
foreach (var musica in listaAnoLancamento)
{
//musica.ExibirFichaTecnica();
Console.WriteLine($"Musica: {musica.Nome}, Artista: {musica.Artista?.Nome}");
}
Console.WriteLine("\nDigite uma tecla para voltar ao menu principal");
Console.ReadKey();
Console.Clear();
}
else
{
Console.WriteLine($"\nO ano {anoLancamento} não foi encontrada!");
Console.WriteLine("Digite uma tecla para voltar ao menu principal");
Console.ReadKey();
Console.Clear();
}
}
}
Obrigado.