ASP.NET 5,希望將實體框架與Web Project分開

asp.net-core asp.net-core-mvc entity-framework-core

我正在嘗試實現以下應用程序結構

App.Model - UserModel - OrderModel

App.Service - UserService - IUserService

App.Entity - DbContext

網站 - WebAPI - 調用服務

大多數ASP.NET 5應用實例,在網站啟動文件中初始化實體框架。像.AddEntityFrameowrk()..等

需要知道我們如何將實體分成單獨的項目,如果我們從Service項目調用存儲庫,我們如何啟動DBContext。(因為啟動文件不適用於類庫)

熱門答案

在以前的項目中,我採用了在一個解決方案(或多個解決方案)中維護多個ASP.NET項目的方法。這將使您能夠從Web應用程序中刪除EF依賴項,並使Web應用程序僅與處理所有EF的API通信

在過去,我創建了一個專門的“域”項目,其中包含所有模型,並且可以由Web應用程序和API項目引用。

所以項目結構看起來像這樣

域項目:僅包含代表您的模型的c#類。從“空”項目開始

API:包含您的Web API。使用EF與數據庫交互。我個人會為您的模型製作API,但這是個人選擇。現在,在ASP.NET核心1.0 RC1中,web api模板很差,所以我從完整的“web應用程序”開始,刪除所有默認視圖,控制器,腳本等。引用域項目,以便您可以從模型中構建您的API控制器

Web應用程序:您的主Web應用程序項目。從“Web應用程序”模板開始,但使用HttpClient I您的控制器使用api進行數據交互。在過去,我創建了一組靜態的“api幫助程序類”,使這項任務更容易,但這又是個人風格的選擇。引用域項目,以便您可以將傳入的JSON響應轉換為完整的.net模型



Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow