Ta funkcja jest używana z połączeniem Property(() => p).HasDatabaseGeneratedOption()
. Czy może wyłączyć domyślne generowanie wartości DB?Dlaczego istnieje `DatabaseGeneratedOption.None`?
Odpowiedz
EF używa DatabaseGeneratedOption
, aby dowiedzieć się, co zrobić z wartością kolumny klucza dla nowych podmiotów. Jeśli wartość DatabaseGeneratedOption
wynosi Identity
EF wie, że wartość, do której ustawiona jest właściwość, może zostać zignorowana i że należy użyć tej, która pochodzi z bazy danych. Jeśli DatabaseGeneratedOption
jest None
EF wstawi wartość właściwości do bazy danych jako wartość kolumny klucza.
W kodzie Najpierw - gdy konwencje Code First znajdują właściwość int, która może być kluczową własnością dla danego podmiotu, domyślnie skonfigurują tę kolumnę jako kolumnę tożsamości (co oznacza, że baza danych wygeneruje wartość kluczowej kolumny/właściwości). DatabaseGeneratedOption.None
pozwala na zastąpienie tego, jeśli chcesz ustawić własne wartości.
Jego skutkiem jest skonfigurowanie EF, aby nie pobierać nowej wartości tożsamości po wstawieniu do bazy danych.
Zobacz: http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.schema.databasegeneratedoption%28v=vs.110%29.aspx –