0

Project エンティティと Rfi エンティティがあります。プロジェクト エンティティには、TeamMembers のリストが含まれています。Project は、Rfi エンティティのナビゲーション プロパティです。Rfi エンティティには RecipientId があります。この Id は、TeamMembers コレクションの個人を表します。Web ページに、受信者という名前のドロップダウン ボックスがあるとします。リストには、プロジェクトのすべてのチーム メンバーが含まれます。ユーザーはそのリストから連絡先を選択します。その連絡先の ID は RecipientsId プロパティに保存されます。ページがリロードされると、RecipeintsId プロパティの値に基づいて、ドロップダウンでそのユーザーの ID が選択されます。流暢な API を使用して EF 4.1 でこれをマップする最良の方法は何ですか?

    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
    }
4

1 に答える 1

0

Rfi私が理解しているように、あなたの問題は と の間でマッピングされていますContect-Projectデータベースの観点からは、受信者機能に何の役割もありません。

Recipientのナビゲーション プロパティRfiまたはのRfisナビゲーション プロパティのいずれかが必要ですContact。EF コードでは、最初に関係の少なくとも 1 つの側にナビゲーション プロパティが必要です。

したがって、次のようなものを使用できます。

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
}

そしてマップ:

modelBuilder.Entity<Rfi>()
            .HasRequired(r => r.Recipient)
            .WithMany()
            .HasForeignKey(r => r.RecipientId);
于 2011-05-20T14:57:38.877 に答える