2016-12-30 71 views
1

我有一個ASP.NET MVC核心的問題,似乎有一些緩存或SQL尚未完全執行完成。ASP.NET MVC核心更新記錄存儲過程沒有任何返回

我運行一個存儲過程來更新已經存在的記錄(這是成功的,isPublished標誌從0變爲1),但在接下來的頁面加載,實體框架是無法找到,即使isPublished一直認爲記錄設置爲1.

話雖如此,一旦我在Visual Studio中重新啓動調試會話,它將按預期工作。

我有一種感覺,也許是SQL不完全執行,或者它緩存?

有沒有人有一個想法它可能是什麼?

回答

1

我找到了解決我的問題的方法。

事實證明,我的服務,在startup.cs中,是AddSingleton。

services.AddSingleton<IPersonService, PersonService>(); //Needs to be AddScoped 
services.AddSingleton<IPersonRepository, PersonRepository>(); //Also needs to be AddScoped 

這不會擔任單隻創建一次,將成爲 http請求相同的實例。

我們需要的是每個http請求的新實例。

另外,請確保服務的範圍與存儲庫相同。

欲瞭解更多信息,你可以去這個頁面 What is the difference between services.AddTransient, service.AddScope and service.AddSingleton methods in Asp.Net Core 1?

請到此任何修改,如果它不正確的!

希望這有助於=)

相關問題