La cartographie des suggestions pour une éventuelle partagé clé étrangère (objet de valeur au sein de l'entité) dans l'Entity Framework 4.1?

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

Question

J'ai un Projet de l'entité et une Ddr de l'entité.L'entité du projet contient une liste de TeamMembers.Le projet est une propriété de navigation dans la demande de l'entité.Dans la demande de l'entité, il est un RecipientId.Ce code représente une personne de la TeamMembers collection.Alors, imaginez, sur une page web, nous avons une zone de liste déroulante nom du Destinataire.La liste comprend tous les membres de l'équipe du Projet.L'utilisateur de sélectionner un Contact dans la liste.L'Id de ce contact est enregistré dans le RecipientsId de la propriété.Quand la page est rechargée, nous allons sélectionner l'Id de l'utilisateur dans la liste déroulante en fonction de la valeur de la RecipeintsId de la propriété.Quelle est la meilleure façon de carte ce en EF 4.1 à l'aide de l'API fluent?

    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
    }
Était-ce utile?

La solution

Si je comprends bien votre problème, c'est le mappage entre les Rfi et Contect - Project n'ont pas de rôle dans votre Destinataire de la fonctionnalité de la base de données de point de vue.

Vous avez besoin d' Recipient propriété de navigation dans Rfi ou Rfis propriété de navigation dans Contact.EF premier code les besoins de la navigation de la propriété sur au moins un côté de la relation.

De sorte que vous pouvez utiliser quelque chose comme:

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
}

Et une carte:

modelBuilder.Entity<Rfi>()
            .HasRequired(r => r.Recipient)
            .WithMany()
            .HasForeignKey(r => r.RecipientId);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top