繁体   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