Utilizando enum como FK em EF 6
-
23-12-2019 - |
Pergunta
Eu gostaria de usar um enum como Chave Estrangeira em um Código-Primeiro aplicativo.Desde as enumerações são armazenados como int, eu pensei que eu poderia usar o atributo [ForeignKey] no enum propriedade, mas lança essa exceção:
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
Aqui está um exemplo do que estou tentando fazer:
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; }
...
}
É possível fazer isso ou algo semelhante através de api fluente ou migrações?
Obrigado
Solução
Aqui está o que eu fiz anteriormente: https://www.nuget.org/packages/ef-enum-to-lookup
É um pacote do nuget que fornece um método que você pode chamar de seu Seed
(inicializador e/ou migrações) que irá construir tabelas de pesquisa e adicionar FKs onde o enum é usado. Informações de uso.
Desfrutar de :-) E deixe-me saber se ele funciona para você (ou qualquer outra coisa para essa matéria!)