回答

26

EF使用DatabaseGeneratedOption來確定如何處理新實體的鍵列值。如果DatabaseGeneratedOptionIdentity EF知道該屬性設置的值可以忽略,並且應該使用來自數據庫的值。如果DatabaseGeneratedOptionNone EF將把該屬性的值作爲鍵列的值插入到數據庫中。

在Code First中 - 當Code First約定找到一個int屬性,該屬性可以是給定實體的關鍵屬性時,它們默認將該列配置爲標識列(意味着數據庫將生成關鍵列/屬性的值)。 DatabaseGeneratedOption.None允許你覆蓋這個,如果你想自己設置關鍵值。

+2

請參閱:http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.schema.databasegeneratedoption%28v=vs.110%29.aspx – 2014-06-06 03:24:51

2

其效果是將EF配置爲在插入數據庫後不獲取新的標識值。