اقتراح تعيين لمفتاح خارجي مشترك محتمل (كائن القيمة في الكيان) في إطار الكيان 4.1?

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

سؤال

لدي كيان مشروع وكيان طلب معلومات.يحتوي كيان المشروع على قائمة بأعضاء الفريق.المشروع هو خاصية الملاحة في كيان طلب المعلومات.في كيان رفي هناك وصلةالإدارة.يمثل هذا المعرف شخصا من مجموعة أعضاء الفريق.لذا تخيل ، على صفحة ويب ، لدينا مربع منسدل اسمه المستلم.تشمل القائمة جميع أعضاء فريق المشروع.سيقوم المستخدم بتحديد جهة اتصال من تلك القائمة.سيتم حفظ معرف جهة الاتصال هذه في خاصية ريسيبينتسيد.عندما يتم إعادة تحميل الصفحة سوف نختار معرف هذا المستخدم في القائمة المنسدلة على أساس القيمة في الخاصية ريسيبينتسيد.ما هي أفضل طريقة لتعيين هذا في إف 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
    }
هل كانت مفيدة؟

المحلول

كما أفهمها مشكلتك هو رسم الخرائط بين Rfi و Contect - Project ليس له أي دور في وظيفة المستلم من منظور قاعدة البيانات.

تحتاج إما Recipient خاصية الملاحة في Rfi أو Rfis خاصية الملاحة في Contact.رمز إف أولا يحتاج خاصية الملاحة على جانب واحد على الأقل من العلاقة.

لذلك يمكنك استخدام شيء مثل:

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);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top