1
如何獲取標識2以允許具有相同名稱的多個用戶?標識2如何允許重複名稱邏輯刪除
在我的應用程序中,我不想從數據庫中物理刪除用戶。所以我給Users表添加了一個刪除標誌。
然後我放棄了索引,要求UserName
是唯一的。並創建了一個過濾指數IX_USER_DELET_FG_Flase
DropIndex("dbo.USERS", "UserNameIndex ON dbo.USER");
Sql("CREATE UNIQUE INDEX IX_USER_DELET_FG_Flase ON dbo.USERS (UserName) WHERE DeleteFg = 0");
索引檢查名稱是唯一的,當刪除標誌是假的。
這仍然不允許我創建一個與刪除用戶同名的用戶。從源代碼Identity Source看,有一個私有方法檢查名稱是否唯一。有沒有辦法禁用此驗證?
或者我需要覆蓋一些Identity方法來檢查刪除標誌爲false的用戶。
有沒有人以前做過這個,是很多工作還是更好的方法來做到這一點?
我怕如果我開始這樣做,我會最終下一個大兔子洞
而不是使用隨機值,我認爲時間戳作爲後綴可能會更好,沒有重複的風險,除非你的用戶是時間旅行者。它也給你一些歷史的感覺 –
@JeffFinn這確實是一個更好的解決方案,我沒有想到這一點。 – trailmax