簡體   English   中英

EF Core 設置連接字符串

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM