Jestem całkiem nowy dla EF i nie jestem do końca pewien, jak to zrobić.Wiele do wielu relacji w kodzie EF5 Najpierw, jak mogę określić nazwę tabeli?
Mam wiele do wielu relacji, dokładnie tak:
Gdy próbuję dodać zasób (recurso) do profilu (perfil), pojawia się następujący błąd:
Invalid object name 'dbo.RecursoPerfils
Gdzie do diabła RecursoPerfils
pochodzi?
Jak mogę określić (najlepiej za pomocą adnotacji atrybutu) nazwę tabeli dla tego związku?
Zobacz modele poniżej:
[Table("Perfil")]
public class Perfil
{
public Perfil()
{
this.Usuarios = new List<Usuario>();
this.Recursos = new List<Recurso>();
}
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
[Key]
public int IdPerfil { get; set; }
[Required]
public string Descricao { get; set; }
public virtual ICollection<Usuario> Usuarios { get; set; }
public virtual ICollection<Recurso> Recursos { get; set; }
}
[Table("Recurso")]
public class Recurso
{
public Recurso()
{
this.Perfis = new List<Perfil>();
}
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
[Key]
public int IdRecurso { get; set; }
[Required]
public string NomeRecurso { get; set; }
[Required]
public string Descricao { get; set; }
public virtual ICollection<Perfil> Perfis { get; set; }
}
Dziękuję. Zakładam, że nie można tego zrobić bez użycia Fluent API i po prostu atrybutów? –
@ConradClark Tak. Atrybuty nie oferują pełnych możliwości konfiguracji. – Eranga
Świetna odpowiedź. Dzięki! –