Pregunta

Estoy trabajando con el código EF4.1 primero y estoy tratando de crear algunas tablas de relaciones de muchos a muchos donde las tablas deberían estar vinculadas.Por favor, vea el pequeño fragmento de código Below:

class Event
{
    int EventId { get; set; }
    ICollection<Contact> Contacts { get; set; }
}

class Contact
{
    int ContactId { get; set; }
    ICollection<Relation> Relations { get; set; }
}

class Relation
{
    int RelationId { get; set; }
    string Name { get; set; }
}   

Entonces, el objeto de contactos puede tener muchos tipos diferentes de relaciones, como "Madre", "Padre", "Hermano", etc.

Necesito rastrear algún tipo de evento en el que asistió un contacto, pero quiero saber cómo está relacionado con la persona que se aloja el evento.Entonces, por ejemplo, ¿fue él el hermano, padre o esposo del eventer?En otro evento, la misma persona podría aparecer, pero ser el cuñado del eventor.

El evento al contacto es de muchos a muchos;La relación con el contacto es uno a muchos.

En SQL, solo hicíamos una tabla de enlace y tendríamos las tres propiedades de ID allí (Eventid, Contactid, Relormid);Sin embargo, en el código primero, ¿Cómo representaría esta relación?

¿Fue útil?

Solución

Igual que la base de datos tiene que crear una entidad de asignación al igual que losEvents como la tabla de asignación en la base de datos.

class Event
{
  int EventId { get; set; }
  ICollection<ContactEvent> ContactEvents { get; set; }
}

class ContactEvent
{
  int EventId {get;set;}
  int ContactId {get;set;}
  public virtual Event Event {get; set;}
  public virtual Contact Contact {get;set;}
}

class Contact
{
   int ContactId { get; set; }
   ICollection<ContactEvent> ContactEvents { get; set; }
   ICollection<Relation> Relations { get; set; }
}

class Relation
{
  int RelationId { get; set; }
  string Name { get; set; }
  public virtual Contact Contact {get; set}
}   

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top