從標識2開始,它們已經從具有整數值的標識(例如1,2,3,4,...)切換到具有nvarchar的標識存儲的ID爲一些長的字符串像通過GUID或標識2中的整數跟蹤用戶
a234vt-23sdlj23klj-34jkh34jh34-23jk4jh2
如果我創建一個對象,將有屬於人的單一所有者登錄值,所以我需要將用戶ID附加到它,我應該使用Identity 2中的這個新ID,或者我應該嘗試創建一些其他值,如整數並將其放入aspnetusers表中?它真的很重要,我所做的只是按照所有者(userid)獲取禮品對象並在表單上顯示/修改禮品對象。
這裏是我的產品對象
public class Gift
{
public int Id { get; set; }
public string Name { get; set; }
public ICollection<Category> Categories { get; set; }
public int Rating { get; set; }
public GiftStatus Status { get; set; }
Public string UserId {get; set; //where userid is the id of the user that owns this object, should it be 3kj23jh3-h3hk1jh2-khj2h34l1b-n22g35l ???
}
的唯一原因,我想用一個id是速度。因爲我將根據guid從db中獲取大量對象。但是,如果它不能更快地使用guid,那麼使用普通的int id,那麼我將使用guid來簡化它。 – user1186050
如果您關注性能,請查看此問題的接受答案:http://stackoverflow.com/questions/11938044/what-are-the-best-practices-for-using-a-guid- as-a-primary-key-specific-rega – Sam
好的用戶名被編入索引,所以如果我需要一種方法來存儲誰擁有什麼,那麼用戶名會和id一樣可以接受?我看不出爲什麼使用nvarchar作爲id的身份2的默認實現在性能方面會很慢,這可能是唯一需要快速獲取的字段?爲什麼MS會讓失敗的執行速度變慢? – user1186050