原创 EF core code first 修改主鍵的類型
一般的字段修改類型直接修改,然後add-migration, update-database,沒什麼問題,但是主鍵的話,直接修改會報錯,如果表的主鍵 作爲另一個表的外鍵的話,更會報錯 約束 'PK_ProcessRatio' 正由表 'M
原创 Identityserver
Identityserver 作用: protect your resources authenticate users using a local account store or via an external identity pr
原创 redis 高併發場景下的鎖的問題
簡單場景:一個下單按鈕,調用API, 庫存減去1 對於一般的訪問量不高的,代碼很簡單: 直接從sql獲取庫存,然後減一,然而當併發量提高的時候,從數據庫獲取,再到減一的過程中,庫存已經不是當時的庫存了,我們可能想到很多解決辦法,表鎖,時間
原创 EF CORE 延時加載
配置延時加載有2種方式 Proxies ILazyLoader service Proxies的話 install-package Microsoft.EntityFrameworkCore.Proxies protected ove
原创 EF 查詢數據
1.Single 如果您希望檢索一個實體的單個實例,則可以使用First或Single方法,具體取決於您是否希望有多個符合條件的行。 如果存在多個匹配行,則Single方法將引發異常。 sql: SELECT TOP(2) [a].[
原创 EF CORE EntityState 實體類狀態
Detached:對象存在,但未由對象服務跟蹤。在創建實體之後、但將其添加到對象上下文之前,該實體處於此狀態; Unchanged:自對象加載到上下文中後,或自上次調用 SaveChanges() 方法後,此對象尚未經過修改; Added
原创 Entity Framework Core Migrations
1.Creating a Migration [Command Line] dotnet ef migrations add <name of migration> [Package Manager console] add-migr
原创 https://github.com/aspnet/AspNetCore
https://github.com/aspnet/AspNetCore https://github.com/dotnet/corefx
原创 linux apache 配置
2、更新安裝列表:apt-get update apt-get install gcc build-essential sudo apt-get install make sudo apt-get install libexpat1-d
原创 Identity server sso平臺的用戶過期時間設置
安裝官網的配置方式是這樣的 services.AddIdentityServer() .AddInMemoryClients(Clients.Get()) .AddInMemoryIdentityResources(Re
原创 IdentityServer4 官網巨坑ef core
也不能說巨坑,只怪自己不仔細,其實官網上已經寫了,我直接忽略了 https://identityserver4.readthedocs.io/en/latest/quickstarts/4_entityframework.html 安裝
原创 IdentityServer4 Identity Resource中的user Claim
Identity Resource 身份資源,裏面的UserClaims是用戶的一些屬性,默認情況下,即使寫再多的屬性,token中也只會返回sub一個,我們需要在代碼中加入 var builder = services.AddId
原创 IDS4 使用數據庫登錄
在AccountController 中的login 方法裏 驗證的時候與數據庫匹配 然後再實現IProfileService的方法,把Claims 對應進去。 private Claim[] GetUserClaims()
原创 ionic4 android 鍵盤坑
遇到的問題 只要出現鍵盤,ion-content的高度就變小, 把 <preference name="resizeOnFullScreen" value="true" /> 刪除 <preference name="KeyboardR
原创 rxjs 循環請求一次返回,類似promise.all
const promiseArray = []; let flag = false; this.componentMaterialFormArray.value.map(e => { const materia