0
有沒有什麼辦法,使自動生成主鍵字符串類型,不INT或GUID?自動生成的字符串主鍵
public class User
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)] //???
public string Id { get; set; } // string type
public string Name { get; set; }
public string Login { get; set; }
}
在下列問題的情況下,「爲什麼呢?」:事情是,在我目前的模型PK是登錄了,我想在不知不覺中單獨的登錄和主鍵,節省的PK那是已經在使用。
登錄 - 是一個用戶名嗎?我預測有一天有人會說「我們不喜歡自動生成的登錄信息,我們可以創建自己的登錄信息嗎?」或者「我們可以使用電子郵件地址登錄嗎?」那麼你將不得不修復所有這些外鍵...... – Colin
沒錯。目前登錄是主鍵。我想使登錄成爲獨立的字段,但保存主鍵,併爲新用戶生成PK。看起來手動生成是唯一的方法。 –
我想我會讓'Id'爲一個帶有身份的整數,修正所有那些當前是字符串的外鍵 - 這是一種痛苦,但是無論如何你必須做一些修正。然後我會將'Login'作爲「自然」鍵,並按照此處所述進行驗證:http://stackoverflow.com/a/18736484/150342 – Colin