5

Pregunta similar: Mapping collection of strings with Entity Framework or Linq to SQLcolección de asignaciones de tipo de valor en el marco de la entidad

tengo una clase de papel:

public class Role 
{ 
    public int RoleID { get; set; } 
    public virtual IList<string> Actions { get; set; } 
} 

tengo una tabla de asignación en el PP, "RoleActionMapping" con las columnas, "RoleID " y acción". "RoleID" es un punto clave externo a la tabla de roles, y "Action" es varchar. Parece que no puedo configurar mi asignación EF para completar la clase Rol con las RoleActions.

¿Alguna idea sobre cómo lograr esto? ¡Gracias!

Respuesta

3

EF no ofrece dicha asignación.

Si desea asignar se debe utilizar:

public class Role 
{ 
    public int RoleID { get; set;} 
    public virtual IList<RoleAction> Actions { get; set; } // you should initialize collection 
} 

public class RoleAction 
{ 
    public int ActionId { get; set; } // PK must be defined or entity is readonly 
    public string Action { get; set; } 
    public virtual Role { get; set; } 
} 

Puede ampliar aún más Role clase provied propiedad no asignada regresar IEnumerable<string> que será internamente seleccionar datos de Actions propiedad.

Pero una vez que sigas este enfoque deberías considerar modelarlo como relación M: N entre Role y Action entidad.

+0

Lástima, ojalá lo hiciera. Gracias por la solución. – manu08

+0

@ manu08 Para obtener una perspectiva sobre * por qué * "colecciones de objetos de valor" podría no ofrecerse, consulte http://mhinze.com/2009/01/10/there-is-never-a-collection-of-value- objetos/(Esto es, en general, términos de Diseño Dirigido por Dominio, no Entidad específica). – Nathan

Cuestiones relacionadas