Возможно ли использовать перечисление в качестве первичного ключа для таблицы? У меня есть что-то вроде следующего:Использование перечисления в качестве первичного ключа с EF
public enum SpecialId : uint {}
public class Thing
{
public SpecialId Id { get; set; }
}
public class MyContext : DbContext
{
public DbSet<Thing> Things { get; set; }
}
Но я получаю следующую ошибку при инициализации:
unhanded исключение типа «System.InvalidOperationException» произошло в EntityFramework.dll
Дополнительная информация : Ключевой компонент «Идентификатор» не является объявленным свойством в типе «Вещь». Убедитесь, что он не был явно исключен из модели и что он является допустимым примитивным свойством.
Это сказать, что это должно быть примитивным (перечисление только литьевой к primitave), но EF post around enums sugguests это возможно
Перечисления в качестве ключей
Кроме того, свойства перечисления типы могут участвовать в определении первичных ключей, уникальных ограничений и внешних ключей, а также принимать участие в проверках контроля параллелизма и объявлять значения по умолчанию.
Я делаю что-то неправильно или это просто не поддерживается?
На стороне не знаю, что я мог бы взломать эту функциональность, используя другое свойство, не отображаемое на нем, чтобы перевести ключи в перечисления. Это не ответ я ищу
вы рассмотрели добавив атрибут' Key'? также какая версия EF? –
Да, это не помогает (например, 'HasKey (x => x.Id)'). EF должен все равно подбирать это по соглашению, но я попробовал это, чтобы узнать, была ли проблема. –
Вы делаете код первым ??? –