Soy bastante nuevo en EF, y no estoy seguro de cómo hacerlo.Relaciones muchas a muchas en el código EF5 Primero, ¿cómo puedo especificar el nombre de la tabla?
que tienen una relación de muchos a muchos, exactamente como esta:
Cuando intento agregar un recurso (Recurso) a un perfil (Perfil), me sale el siguiente error:
Invalid object name 'dbo.RecursoPerfils
dónde demonios RecursoPerfils
viene?
¿Cómo puedo especificar (preferiblemente a través de la anotación de atributos) el nombre de la tabla para esta relación?
ver los modelos a continuación:
[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; }
}
Gracias. Supongo que no hay forma de hacer esto sin usar la API Fluent y solo los atributos. –
@ConradClark Sí. Los atributos no ofrecen las capacidades de configuración completas. – Eranga
Gran respuesta. ¡Gracias! –