استخدام التعداد كـ FK على EF 6
-
23-12-2019 - |
سؤال
أرغب في استخدام التعداد كمفتاح خارجي في تطبيق 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 حيث يتم استخدام التعداد. معلومات الاستخدام.
استمتع :-) وأخبرني إذا كان ذلك يناسبك (أو أي شخص آخر في هذا الشأن!)
لا تنتمي إلى StackOverflow