簡體   English   中英

您可以從 EntityFramework Core 中的另一個 DbContext 創建一個子 DbContext 嗎?

[英]Can you create a sub DbContext from another DbContext in EntityFramework Core?

假設我有一個現有的 DbContext,有沒有辦法創建另一個使用該 DbContext 的 DbContext?

基本上,我有興趣將不同的 DbContext 暴露給不同的應用程序,但希望它們都能從原始 DbContext 工作。

這可用於版本控制、安全性等。

我可以創建不同的 DTO,但是我失去了 IQueryable 的很多功能。

我不確定我是否理解正確,但是您使用同一個應用程序注冊了另一個像這樣的數據庫上下文(據說是不同的數據庫)

services.AddDbContext<ApplicationDbContext2>(
    options => options.UseSqlServer("name=ConnectionStrings:DefaultConnection"));

並且您按照定義#1 的方式定義它。

我擔心的部分是:

我有興趣將不同的 DbContext 暴露給不同的應用程序,但希望它們都能從原始 DbContext 工作

在您的應用程序中定義的 Dbcontext 以跟蹤您的應用程序的 state。 如果應用程序的 state 依賴於其他應用程序,則您正在談論微服務,並且您需要使用其他工具告訴您的應用程序更新自己的 state。 例如,您可以調用端點(最好通過 gRPC)或使用事件總線。

我們曾經在應用程序之間共享數據庫(有些仍然這樣做),但這不是一個好主意,因為一個應用程序的數據庫更改可能會導致其他依賴應用程序的錯誤。

暫無
暫無

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

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