Я новичок в EF и стараюсь сделать первые шаги по первому подходу кода в ETF6.0, и теперь у меня есть проблема.Как использовать свойство String в качестве первичного ключа в Entity Framework
У меня есть свойство
[Key]
public string FooId { get; set; }
который является моим первичным ключом для этой модели.
Но если я запускаю команду
PM> Update-Database
в менеджере пакетов консоли для обновления в ожидании миграции в базу данных я получаю следующее сообщение об ошибке:
Identity column 'FooId' must be of data type int, bigint, smallint, tinyint, or decimal or numeric with a scale of 0, and constrained to be nonnullable.
Если изменить PK в моей модели
[Key]
public int FooId { get; set; }
все работает нормально.
Но мне нужен ПК, чтобы быть типа string, потому что он абсолютно чувствует в моем случае. Я знаю, что есть недостатки, но для меня это необходимо.
Я видел более старое сообщение здесь How to make string as primary key in entity framework!.
Но, похоже, это не решение моей проблемы, или я просто не понимаю.
Действительно ли я не могу использовать строку как PK в базе данных SQL?
Или есть способ сделать это?
Ключа дефолта идентичности, так что вам нужно, чтобы выключить его с помощью атрибута '[DatabaseGenerated (DatabaseGeneratedOption.None)] 'Это означает, что вам нужно указать ключ вручную при добавлении (он не сгенерирован). – Hopeless