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