2016-03-15 158 views
-1

我有一個ASP .NET MVC 6和實體框架6,分爲幾層,我如何在DbContext中的DAL層獲取連接字符串? 連接字符串是這樣appsettings.json文件:ASP .NET MVC層DAL

{ 
    "Logging": { 
    "IncludeScopes": false, 
    "LogLevel": { 
     "Default": "Verbose", 
     "System": "Information", 
     "Microsoft": "Information" 
    } 
    }, 
    "Data": { 
    "DefaultConnection": { 
     "ConnectionString": "", 
    } 
    } 
} 
+0

我猜你添加一個構造函數說參數並推動它? – Carsten

回答

2

如果在連接字符串中appsettings.json要首先建立一個配置對象:

var builder = new ConfigurationBuilder().AddJsonFile("appsettings.json"); 
var configuration = builder.Build(); 

這也許應該是Startup 's ctor。然後,您可以將configuration對象存儲在一個字段中。我們假設一個_configuration字段。

然後,你可以做

// _connectionString is also a field. 
_connectionString = _configuration["Data:DefaultConnection"]; 

DbContext

public class AppDbContext : DbContext 
{ 
    public AppDbContext(string connectionString) : base(connectionString) 
    { 
    } 
} 

的,你可以在ConfigureServicesAppDbContext註冊爲:

services.AddScoped(_ => new AppDbContext(_connectionString)); 
+0

謝謝,現在我該如何在存儲庫類中運行查詢? – henriquedpereira

+1

從這裏開始應該很容易,如果你使用'DI',那麼只需要在你倉庫的ctor中請求'AppDbContext'。之後,像往常一樣使用'AppDbContext'完成你的查詢。如果您剛剛開始使用「EntityFramework」或「Asp.Net Core」,請告訴我們,以便我們知道如何最好地爲您提供幫助。 – mrahhal