簡體   English   中英

如何使用依賴注入配置 Devart LinqConnect 數據庫上下文

[英]How to configure the Devart LinqConnect Database Context with Dependency Injection

我有一個庫項目,它存儲后端 API 服務的所有業務邏輯。 該庫中包含 Devart 提供的數據庫上下文。 如何在我的 Startup.cs 中設置一個瞬態服務,允許我指定在 c# 使用依賴注入啟動數據庫時要使用的連接字符串? 這是一些代碼,其中包含我正在查看的內容以及我嘗試過的一些內容。

我知道,如果您有一個普通的 DbContext,您可以使用以下內容:

_ = services.AddDbContext<DbContext>(options => options.UseSqlServer(connString));

但是因為這是一個 devart 數據上下文,所以我沒有提供這樣做的選項。

我嘗試創建部分 class:

public partial class CustomDbContext : Library.DevartDbContext
    {
        public CustomDbContext() : base(dbConnectionString) { }
    }

這只是覆蓋默認的 Devart Db Context 構造函數,並且只有當我在我的庫中使用 CustomDbContext class 時才有效,而我不是。

這是我當前注入 DbContext 並依賴於來自庫的連接字符串的行的樣子。

_ = services.AddTransient<Library.DevartDbContext>();

我以前沒有使用過 Ninject,這是一個可以為我處理這個問題的好解決方案嗎?

我可以讓我的項目編譯如果我這樣做:

_ = services.AddTransient(x => new Library.DevartDbContext(dbConnectionString));

像這樣設置我的數據庫上下文有什么后果嗎? - 編輯 Devart 實際上不允許我這樣做。 我的連接字符串出錯,提示密鑰無效:許可證密鑰。 所以我回到方塊 0。

事實證明,我使用的解決方案

_ = services.AddTransient(x => new Library.DevartDbContext(dbConnectionString));

是正確的解決方案,我得到的錯誤與以這種方式使用 Devart 數據上下文無關。 因為我有一個以前的數據庫上下文仍在項目中並且仍在使用,所以當我在啟動時更新連接字符串以指向其中包含許可證密鑰的 devart 時,這就是我的錯誤來源。

目前,我現在只提供兩種不同的連接字符串,一種帶有許可證密鑰,另一種不用於選擇性數據庫上下文。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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