![](/img/trans.png)
[英]Is Blazor WASM Asp.net core Hosted = Blazor server side?
[英]Blazor wasm, net core hosted, with authentication, relationships between applicationuser and my models in the shared project
我正在研究 Net Core 和 Blazor,我面臨以下問題。
我創建了一個新的 Blazor web 組裝解決方案,使用用戶身份驗證托管網絡核心。 該解決方案默認分為三個項目:客戶端、服務器和共享。 我將我的模型放在共享項目中,但現在我需要設置關系(一對多、多對多,......如下所述:https://docs.microsoft.com/en-us/ef /core/modeling/relationships )在我的模型和位於服務器項目中的 ApplicationUser model 之間。
在我的 model 里面我放不下
public ApplicationUser User { get; set; }
因為我不能這樣做
using mysolutionname.server;
因為服務器項目依賴於共享,而共享不能依賴於服務器(循環依賴)。
我該如何解決這個問題?
共享項目應僅包含客戶端和服務器項目共享的對象。 例如,默認 Visual Studio 模板中客戶端和服務器項目使用的 WeatherForecast class 位於共享項目中,因為兩個項目都使用此 class。 但是像ApplicationUser(或ApplicationDbContext)這樣的對象只用在服務端,不能也不能用在Client項目上,而且它們的默認模板生成的當前位置也不應該像你想象的那樣改變。
希望這可以幫助...
如果您遇到循環依賴問題,這主要意味着您的應用程序架構中有問題。
在您的情況下,在不同位置定義數據對象不是一個好習慣,在所有流行的軟件模式中,數據 model 與其他組件分開。
如果 ApplicationUser 基本上是一個數據庫 object,它需要存在於您的數據庫層並且應用程序使用該數據庫層。
單獨保留這些層有很多好處。 僅舉一些例子:
如果您需要來自另一個庫的子應用程序用戶,您應該在數據庫層中引用該庫。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.