[英]EF Core set connection string
我有一個由其他 dotnet 項目(azure 函數應用程序和 Web 應用程序)使用的數據庫項目。 我想使用dotnet ef core cli來處理遷移,但我不想在代碼中保留我的連接字符串(我想讓我的 repo 公開)。
這是我當前的 DbContext:
public ChadwickDbContext(DbContextOptions options): base(options) {}
當我運行類似的東西時: dotnet ef migrations add InitialCreate
我收到錯誤:
無法創建類型為“ChadwickDbContext”的對象。 有關設計時支持的不同模式,請參閱https://go.microsoft.com/fwlink/?linkid=851728
這在以前有效,因為我有這樣的硬編碼連接字符串:
public ChadwickDbContext(string connectionString = "<connection string>"): base(GetOptions(connectionString)) {}
有沒有辦法通過cli設置連接字符串或在僅數據庫項目中包含某種環境文件(如appsettings.json
?
腳手架似乎與我想要的很接近,但這似乎更像是一種生成上下文和模型的方法(已經完成)。
看起來最好的方法是設置你自己的 json 文件並注冊它:
例子:
public ChadwickDbContext(): base(GetOptions()) {}
private static DbContextOptions GetOptions()
{
var config = new ConfigurationBuilder().AddJsonFile("appsettings.json").Build();
var connectionString = config["ConnectionStrings:DefaultConnection"];
var options = new DbContextOptionsBuilder();
options.UseSqlServer(connectionString);
return options.Options;
}
Appsettings.json
{
"ConnectionStrings": {
"DefaultConnection": "<Connection String>"
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.