Jestem nowy w EF i próbuję zrobić moje pierwsze kroki, stosując kodowanie w metodzie ETF6.0, a teraz mam problem.Jak używać właściwości String jako klucza podstawowego w Entity Framework
Mam właściwość
[Key]
public string FooId { get; set; }
który jest mój klucz podstawowy dla danego modelu.
Ale jeśli uruchomić komendę w konsoli menedżera pakietów
PM> Update-Database
zaktualizować do czasu migracji do bazy danych pojawia się następujący błąd:
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.
Jeśli zmienię PK w moim modelu
[Key]
public int FooId { get; set; }
wszystko działa poprawnie.
Ale potrzebowałbym PK, aby był ciągiem typu, ponieważ jest absolutnie sensowny w moim przypadku. Wiem, że są wady, ale dla mnie jest to konieczne.
Widziałem starszy post tutaj How to make string as primary key in entity framework!.
Ale wygląda na to, że nie rozwiążę mojego problemu lub po prostu go nie rozumiem.
Czy naprawdę nie mogę użyć ciągu znaków jako PK w bazie danych SQL?
Czy jest jakiś sposób, aby to zrobić?
Kluczem jest domyślnie tożsamości, więc trzeba wyłączyć go za pomocą atrybutu '[DatabaseGenerated (DatabaseGeneratedOption.None)] 'Oznacza to, że musisz ręcznie określić klucz podczas dodawania (nie jest on generowany). – Hopeless