我將爲我們的退出和新應用程序創建一個新的授權DLL。 我們希望爲POCO類,OAuth和聲明添加Identity 2.0主要功能。 (索賠真的很重要)標識2.0字符串或Int主鍵?
因此,首先想到的是主鍵是一個字符串。我知道這可以改變,但我也第一次研究爲什麼它是一個字符串,我發現這個答案: Why do the ASP.NET Identity interfaces use strings for primary and foreign keys?他們cleary指定該字符串'更好',以避免鑄造,因爲索賠確實使用字符串。
我們所有的當前應用程序都使用Int作爲主鍵(自動增量)。
而不是盲目的和改變身份實現使用int我研究了更多,同一個答案建議一個解決方案是有一個字符串表示的ID。
喜歡的東西:
[Index(IsClustered = false)]
string Id
[Index(IsClustered = true)]
int LogicalId
我不知道什麼是聚簇索引,但閱讀它在某種程度上行是如何排列的物理磁盤,所以它是關於性能的,所以我會去用它作爲正常。
我的問題是:
主要:什麼是這種情況的最佳做法/建議嗎?
- a)具有LogicalId INT,
- B)覆蓋認同與詮釋
- c中的默認實現),所有的INT轉換爲字符串(如GUID)
的情況下, LogicalId(a):
如果我們無法將PK用作字符串,那麼這樣做的目的是什麼?如何在SaveChanges數據庫上的新實體時增加LogicalId? EF會自動爲我做到這一點?
與TKEY的作爲INT倍率身份實現的情況下:(b)中
使用者ID上權利要求是:(i猜)總是字符串。如果我們爲我們的用戶使用多個外部提供商,那會很重要嗎 是否可以創建EntityFramework for Int的具體實現?任何人都已經?
Uninstall-Package Indentity.EntityFramework
Install-Package Identity.EntityFrameworkInt
那將是很好:d
所有數據轉換爲字符串(C)
是不是疼痛GUID來工作嗎?那些使用GUID的人你還有另一個更簡單的標識符供公衆使用嗎? 無法停止映像客戶服務:
我無法在我們的記錄中找到您的用戶,您能否提供您的用戶ID?
哎喲
網站無法正常工作,當我點擊50 {同類產品}
之一 - 什麼是產品編號?
笑
我們有兩個產品等,請刪除一個。
- 當然,給我的產品ID
CUAC
+1固定User.Identity.GetUserId() –
我知道這是一個老問題,但會下降的問題,但對於這種情況。當數據庫通過身份,自動增量列創建你的Id時,你有沒有解決過這個問題?在註冊我的用戶得到保存到數據庫,但在IdentityUser實例Id保持0(默認值爲int),因爲usermanager不讀取數據庫新創建的ID。任何幫助將不勝感激。謝謝! –
@deezg我還沒有聽說過這個問題。你可能有更好的運氣開個問題 – Shoe