我典型的.NET 4.5X Web應用程序結構至少有3層:一個Web項目(一個.NET Web應用程序),一個域/業務邏輯項目(一個類庫)和一個數據訪問項目(一個類庫)。 Web項目引用業務層,業務層引用數據訪問層。用數據訪問層安排3層的dotnet核心應用程序
我喜歡這種方法,因爲我的web項目沒有對數據訪問項目的引用(它必須先通過域/業務邏輯層)。我的Web項目不應該有任何訪問上下文或存儲庫類。
在3層.net 4.5.X應用程序中,我在web.config中聲明瞭連接字符串,並將DbContext的名稱作爲連接字符串的名稱屬性。
在新DOTNET核心的模式,我看到每一個例子已在Startup.cs配置像這樣的DbContext:
public void ConfigureServices(IServiceCollection services)
{
// Add framework services.
services.AddMvc();
services.AddEntityFramework()
.AddSqlServer()
.AddDbContext<MyApplicationContext>("myconnectionstring or reference to it");
}
通過給啓動一個具體的類使用的的DbContext,我必須引用數據訪問項目,其中定義了dbcontext。我寧願只參考中間層,並避免引用DAL。
我的問題是:我應該如何安排我的解決方案結構,以便避免將我的Web項目的引用添加到我的數據訪問項目中?
我可以使用appsettings.json屬性嗎?
我可以以其他方式添加我的實體配置嗎?
有沒有什麼專業我缺少關於網絡核心?
預先感謝您。
此答案可能會有用,它會刪除網絡層中的EF引用http://stackoverflow.com/a/38360204/1544886 –