0
在EF 5.0中定義具有身份的PK的正確方法是什麼(代碼優先)?在實體框架中定義具有身份的PK的正確方法
我開始使用[Key]
這似乎是創建一個身份的關鍵,但我已經看到了很多的使用
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
不要緊,無論哪種方式的例子?第二種選擇更好,因爲它更具描述性等。
感謝
在EF 5.0中定義具有身份的PK的正確方法是什麼(代碼優先)?在實體框架中定義具有身份的PK的正確方法
我開始使用[Key]
這似乎是創建一個身份的關鍵,但我已經看到了很多的使用
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
不要緊,無論哪種方式的例子?第二種選擇更好,因爲它更具描述性等。
感謝
答案很簡單:
[Key]
本身是不夠的,你甚至不需要它,如果你遵循正確的約定。另一方面,[Key]
在語義上等於[Key(DatabaseGeneratedOption.Identity)]
,它們是相同的,它們等於骨頭,沒有任何區別。
龍答:
[Key(DatabaseGeneratedOption.Identity)]
的情況,這時你 主鍵是Guid
因爲你需要讓數據庫和EF 知道它應該爲此生成一個值,他們只知道要做 ,所以當主鍵是int
時。當主鍵是 由用戶插入顯式[Key(DatabaseGeneratedOption.None)]
被使用,例如主鍵是 的社會安全號碼(分貝不應該產生這一個)。[Key(DatabaseGeneratedOption.Computed)]
是只有 當已經有在表是 計算,一列使用,如當你有一個表 一個全名列通過組合名字計算和姓氏列, 此選項必須來當你映射到 現有數據庫使用只。本信息的大多數取自於書Programming Entity Framework : Code First。
謝謝!很好的解釋。 – ASG