编程语言
首页 > 编程语言> > c#-在一个DBContext中处理多个模式

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

作者:互联网

我正在使用具有新ASP.Net Core 2.0应用程序的现有数据库.该数据库具有两个模式,dbo和notinapplication.我不想创建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"

标签:ef-code-first,asp-net-core-2-0,c,entity-framework
来源: https://codeday.me/bug/20191108/2005880.html