none
crear clases para codefirst relaciones RRS feed

  • Pregunta

  • Buenas Tardes miren tengo esta clase

    public class Contact
    	{
    		[StringLength(100)]
    		public string Id { get; set; }
    
    		[StringLength(100)]
    		public string Name { get; set; }
    
    		public int? IdSex { get; set; }
    
    		public DateTime? Birthday { get; set; }
    
    		public int? IdCivilStatus { get; set; }
    
    		public byte?[] Picture { get; set; }
    
    		public virtual Sex Sex { get; set; }
    
    		public virtual ICollection<Phone> Phones { get; set; }
    	}

    con esa clase se generara la base de datos tambien y esta la clase Sex y la clase Phone no las pongo por que en ellas no esta el problema

    el problema esta en que este contacto tiene amigos que asu ves esos amigos son contactos y esos amigos tienen un tipo de amigo una clase con Id y Name que son un catalogo esta es la clase

    public class TypeRelationship
    	{
    		public int Id { get; set; }
    
    		public string Name { get; set; }
    	}

    lo que no se es como acomodar las clases 

    un contact tiene amigos 

    un amigo es una clase contact

    un contact debe poder discrimar a un amigo por el catalogo TypeRelationShip

    un amigo que es un contact debe componerse por con la clase TypeRelationShip

    un contact tiene muchos amigos que son contact un amigo tiene amigos y discriman todos por la clase TypeRelationShip

    como quedarian las clases, estas clases se usaran para modelar la base de datos con codefirst

    de antemano muchas Gracias

    miércoles, 31 de enero de 2018 0:57

Respuestas

  • visualizo una clase asi realmente la llave principal es una llave compuesta de una clase FriendContact

    la clase va a almanecar  un contact con otro contact pero no pueden repetirse la misma relacion si uno o otro pero no la misma relacion

    suponiendo que yo tengo un contact con id 1 y tengo un contact con id 2 y un contact con id 3

    la clase al deberia permitir esto

    id = 1, 2

    id = 1.3

    id = 2, 1 que no tendria mucho sentido por que significa lo mismo

    id = 2, 3

    id = 3, 1 que tampoco veo el sentido por que es igual a 1, 3

    id = 3.2 lo mismo es igual que 2, 3

    pero asi podria estableces las reglas y la informacion de quien es amigo de quien y nunca se repetira una ralacion

    como crearia esa clase tomando en cuenta que todos los id vienen de la misma clase contact

    solo que incluyen un campo typeFrienship que dice porun catalogo el tipo de relacion que existe

    miércoles, 31 de enero de 2018 1:34
  • creo que las propiedades de las clases serian asi

    public class Relationship
    	{
    		[Key, Column(Order = 0)]
    		[StringLength(100)]
    		public string IdContact { get; set; }
    
    		[Key, Column(Order = 1)]
    		[StringLength(100)]
    		public string IdriendContact { get; set; }
    	}
    pero podrían apoyarme como quedarían las propiedades de navegación

    miércoles, 31 de enero de 2018 15:16

Todas las respuestas

  • visualizo una clase asi realmente la llave principal es una llave compuesta de una clase FriendContact

    la clase va a almanecar  un contact con otro contact pero no pueden repetirse la misma relacion si uno o otro pero no la misma relacion

    suponiendo que yo tengo un contact con id 1 y tengo un contact con id 2 y un contact con id 3

    la clase al deberia permitir esto

    id = 1, 2

    id = 1.3

    id = 2, 1 que no tendria mucho sentido por que significa lo mismo

    id = 2, 3

    id = 3, 1 que tampoco veo el sentido por que es igual a 1, 3

    id = 3.2 lo mismo es igual que 2, 3

    pero asi podria estableces las reglas y la informacion de quien es amigo de quien y nunca se repetira una ralacion

    como crearia esa clase tomando en cuenta que todos los id vienen de la misma clase contact

    solo que incluyen un campo typeFrienship que dice porun catalogo el tipo de relacion que existe

    miércoles, 31 de enero de 2018 1:34
  • creo que las propiedades de las clases serian asi

    public class Relationship
    	{
    		[Key, Column(Order = 0)]
    		[StringLength(100)]
    		public string IdContact { get; set; }
    
    		[Key, Column(Order = 1)]
    		[StringLength(100)]
    		public string IdriendContact { get; set; }
    	}
    pero podrían apoyarme como quedarían las propiedades de navegación

    miércoles, 31 de enero de 2018 15:16