La asignación de sugerencia para una posible compartidos foreign key (objeto de valor en la entidad) en Entity Framework 4.1?

StackOverflow https://stackoverflow.com/questions/6073345

Pregunta

Tengo un Proyecto en la entidad y una petición de información de la entidad.El proyecto de entidad contiene una lista de los miembros del equipo.El proyecto es una propiedad de navegación en la petición de información de la entidad.En la Rfi en la entidad hay un RecipientId.Este Id representa a una persona de los miembros del equipo de recolección.Así que imagínate, en una página web, tenemos un cuadro de lista desplegable nombre de Destinatario.La lista incluye a todos los miembros del equipo del Proyecto.El usuario seleccione un Contacto de la lista.La Identificación de que el contacto se guardará en la RecipientsId de la propiedad.Cuando la página se recarga vamos a seleccionar el Id de ese usuario en el menú desplegable basado en el valor de la RecipeintsId de la propiedad.¿Cuál es la mejor manera de mapa esta en EF 4.1 uso de la API fluida?

    public class Project : BaseEntity
    {
        public string ProjectNumber { get; set; }
        public string Description { get; set; }

        public string CreatedBy { get; set; }
        public string ModifiedBy { get; set; }
        public string Currency { get; set; }


        #region Navigation Properties
        public Guid AddressId { get; set; }
        public virtual Address Address { get; set; }
        public Guid CompanyCodeId { get; set; }
        public virtual CompanyCode CompanyCode { get; set; }
        public virtual ICollection<Contact> TeamMembers { get; set; }
        #endregion

    }


    public class Rfi : Document
    {
        public string Number { get; set; }
        public string Subject { get; set; }
        public string SubcontractorRfiReference { get; set; }
        public string SpecificationSection { get; set; }

        public RfiStatus RfiStatus { get; set; }

        public Guid RecipientId { get; set; }


        #region Navigation Properties
        public Guid ProjectId { get; set; }
        public Project Project { get; set; }
        #endregion
    }
¿Fue útil?

Solución

Como entiendo que tu problema es el mapeo entre Rfi y Contect - Project no tiene ningún papel en el Destinatario de la funcionalidad de la base de datos de perspectiva.

Necesita Recipient propiedad de navegación en Rfi o Rfis propiedad de navegación en Contact.EF code first necesidades de navegación de la propiedad en al menos uno de los lados de la relación.

Así que usted puede usar algo como:

public class Rfi : Document
{
    public string Number { get; set; }
    public string Subject { get; set; }
    public string SubcontractorRfiReference { get; set; }
    public string SpecificationSection { get; set; }

    public RfiStatus RfiStatus { get; set; }

    #region Navigation Properties
    public Guid RecipientId { get; set; }
    public Contact Recipient { get; set; }
    public Guid ProjectId { get; set; }
    public Project Project { get; set; }
    #endregion
}

Y el mapa:

modelBuilder.Entity<Rfi>()
            .HasRequired(r => r.Recipient)
            .WithMany()
            .HasForeignKey(r => r.RecipientId);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top