c# - 在一个 DBContext 中处理多个模式

标签 c# entity-framework ef-code-first asp.net-core-2.0

我将现有数据库与新的 ASP.Net Core 2.0 应用程序一起使用。该数据库有两个模式,dbo 和 notinapplication。我不想创建非应用程序模式表的模型。所以我在包管理器中使用了以下代码,它工作正常。

Scaffold-DbContext "Server=localhost; Database=TestServer; Trusted_Connection=True; 
MultipleActiveResultSets=true;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models
-UseDatabaseNames -Force -Context "DbContext" -Schema "dbo"

这样我只能从 DbContext 中的 dbo 获取表,而忽略 notinapplication 架构表。

但是现在我有一个名为用户的新模式,它需要成为模型的一部分。

Scaffold-DbContext "Server=localhost; Database=TestServer; Trusted_Connection=True; 
MultipleActiveResultSets=true;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models
-UseDatabaseNames -Force -Context "DbContext" -Schema "user"

但是使用上面的代码从 dbo 模式中删除了表。在忽略 notinapplication 模式的同时,我有什么选择可以在 DBContext 中拥有两个模式的表。

如果我确实必须创建不同的上下文,是否可以在一个查询中从多个数据库上下文进行查询?

最佳答案

要提供多个值,您需要做的就是使用“数组语法”。

-Schema "schema1","schema2","schema3"

在你的情况下,你必须做

Scaffold-DbContext "Server=localhost; Database=TestServer; Trusted_Connection=True; 
MultipleActiveResultSets=true;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models
-UseDatabaseNames -Force -Context "DbContext" -Schema "dbo","user"

关于c# - 在一个 DBContext 中处理多个模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55543494/

相关文章:

c# - 分离时删除 Entity Framework Core 中的一比零或一相关数据 (sqlite)

c# - 为什么 EF Core 中的 DbContext 在事务回滚后返回已更改的实体

c# - 抛出什么样的异常?

c# - AnonymousType0#1`6 中的 # 符号是什么意思?

c# - Ria 服务接口(interface)的替代方案

c# - 使用 Entity Framework Code First 映射同一类的子项

entity-framework-4.1 - 映射多对多关系

ef-code-first - 如何更改 Entity Framework 6 中字符串属性的默认最大长度?

c# - GC.KeepAlive 与使用

c# - EF.Core查询相关数据