Использование enum как FK на EF 6
Я хотел бы использовать перечисление в качестве внешнего ключа в приложении Code-First. Поскольку перечисления хранятся как int, я подумал, что мог бы использовать атрибут [ForeignKey] в свойстве enum, но он выдает это исключение:
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; }
...
}
Можно ли сделать это или что-то подобное через беглый API или миграции?
Спасибо
1 ответ
Вот что я сделал ранее: https://www.nuget.org/packages/ef-enum-to-lookup
Это пакет nuget, который предоставляет метод, который вы можете вызвать в своем Seed
(инициализатор и / или миграция), который будет автоматически создавать справочные таблицы и добавлять FK, где используется enum. Информация об использовании.
Наслаждайтесь:-) И дайте мне знать, если это работает для вас (или кого-либо еще в этом отношении!)