Zuordnungsvorschlag für einen möglicherweise gemeinsam genutzten Fremdschlüssel (Wertobjekt in der Entität) in Entity Framework 4.1?

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

Frage

Ich habe eine Projektentität und eine Rfi-Entität.Die Projektentität enthält eine Liste von TeamMembers.Projekt ist eine Navigationseigenschaft in der Rfi-Entität.In der Rfi-Entität gibt es eine RecipientId.Diese ID stellt eine Person aus der TeamMembers-Sammlung dar.Stellen Sie sich also vor, wir haben auf einer Webseite ein Dropdown-Feld mit dem Namen „Empfänger“.Die Liste enthält alle Teammitglieder des Projekts.Der Benutzer wählt einen Kontakt aus dieser Liste aus.Die ID dieses Kontakts wird in der Eigenschaft RecipientsId gespeichert.Wenn die Seite neu geladen wird, wählen wir die ID dieses Benutzers im Dropdown-Menü basierend auf dem Wert in der Eigenschaft RecipeintsId aus.Was ist der beste Weg, dies in EF 4.1 mithilfe der Fluent-API abzubilden?

    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
    }
War es hilfreich?

Lösung

Soweit ich weiß, besteht Ihr Problem in der Zuordnung zwischen Rfi Und Contect - Project spielt aus Datenbanksicht keine Rolle in Ihrer Empfängerfunktionalität.

Sie brauchen beides Recipient Navigationseigenschaft in Rfi oder Rfis Navigationseigenschaft in Contact.EF-Code zuerst Benötigt Navigationseigenschaft auf mindestens einer Seite der Beziehung.

Sie können also etwas verwenden wie:

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
}

Und Karte:

modelBuilder.Entity<Rfi>()
            .HasRequired(r => r.Recipient)
            .WithMany()
            .HasForeignKey(r => r.RecipientId);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top