Havia desenvolvido uma solução bem próxima da proposta. Entretanto tive a exceção System.Data.SqlTypes.SqlNullValueException: 'Data is Null. This method or property cannot be called on Null values.'
na condição if (listaAnoLancamento.Any())
. Copiei o código da resolução substituindo apenas o nome da classe e o erro persiste. Possuo músicas cadastradas com o ano que estou colocando (2010).
Edit: alterei a minha tabela para que todas as instâncias de música no banco de dados possuam um ArtistaId e funcionou. A minha migration que relaciona o artista com a música está da seguinte forma:
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace ScreenSound.Migrations
{
/// <inheritdoc />
public partial class RelacionarArtistaMusica : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<int>(
name: "ArtistaId",
table: "Musicas",
type: "int",
nullable: true);
migrationBuilder.CreateIndex(
name: "IX_Musicas_ArtistaId",
table: "Musicas",
column: "ArtistaId");
migrationBuilder.AddForeignKey(
name: "FK_Musicas_Artistas_ArtistaId",
table: "Musicas",
column: "ArtistaId",
principalTable: "Artistas",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropForeignKey(
name: "FK_Musicas_Artistas_ArtistaId",
table: "Musicas");
migrationBuilder.DropIndex(
name: "IX_Musicas_ArtistaId",
table: "Musicas");
migrationBuilder.DropColumn(
name: "ArtistaId",
table: "Musicas");
}
}
}
Gostaria de saber qual foi a razão do erro, uma vez que a condição leva em conta apenas AnoLancamento, e não a coluna ArtistaId. Obrigado!