سؤال

أرغب في استخدام التعداد كمفتاح خارجي في تطبيق Code-First.نظرًا لأنه يتم تخزين التعدادات كـ int، اعتقدت أنه يمكنني استخدام السمة [ForeignKey] في خاصية التعداد، ولكنها تطرح هذا الاستثناء:

The types of all properties in the Dependent Role of a referential constraint 
must be the same as the corresponding property types in the Principal Role

فيما يلي مثال على ما أحاول القيام به:

public enum UserType
{
    Administrator = 1,
    Member = 2
}

public class User
{
    public int UserId { get; set; }
    public string Login { get; set; }

    [ForeignKey("TypeDetails")]
    public UserType Type { get; set;}

    public virtual MasterType TypeDetails { get; set; }
}

public class MasterType
{
    public int MasterTypeId { get; set; }
    public string Description { get; set; }
    ...
}

هل من الممكن القيام بذلك أو شيء مشابه من خلال واجهة برمجة التطبيقات أو عمليات الترحيل بطلاقة؟

شكرًا

هل كانت مفيدة؟

المحلول

إليك واحدة قمت بإنشائها سابقًا: https://www.nuget.org/packages/ef-enum-to-lookup

إنها حزمة nuget التي توفر طريقة يمكنك الاتصال بها في ملف Seed (التهيئة و/أو عمليات الترحيل) والتي ستقوم تلقائيًا بإنشاء جداول البحث وإضافة FKs حيث يتم استخدام التعداد. معلومات الاستخدام.

استمتع :-) وأخبرني إذا كان ذلك يناسبك (أو أي شخص آخر في هذا الشأن!)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top