在 SQL 服务器的一个 Entity Framework 核心查询中使用多个巨大的数据库?
Use multiple huge databases in one Entity Framework Core query with SQL Server?
我想使用 1 或 2 dbcontext
在一个查询中查询来自不同数据库的多个表。我一直在寻找一些信息,但要使其完美运行似乎并不容易。
我需要同时对来自 3 或 4 个不同数据库的 5 或 6 个表进行多次查询。
- 我试过将
dbcontext
的实现用于另一个,但我遇到了主键问题,如果我只使用一个数据库,我就没有主键。
- 我已经分别尝试了 2
dbcontext
,但出现错误:
Cannot use multiple DbContext instances within a single query execution message.
我读到我可以关联这 2 个数据库,但由于我的企业结构,我不能这样做,而且它不允许我这样做。
这是在 Entity Framework Core 2.2 或 3 中,我都已经尝试过了。我已经创建了数据库,所以我搭建了它们。
我有一个例子,只有 2 个数据库:
var data =
from j in jsa.TbEmp
join i in info.TbcEmpGral on j.fiEmp equals i.fiEmp
where i.fiEmp == 361591
select i.FcName.ToString() + " - " + i.fiDate.ToString();
I want to query multiple tables from different databases [on one server] in one single query
最简单的方法是为单个数据库中的所有表创建视图或同义词。 EF 将无法自动构建模型,但如果您手动创建模型,EF 将简单地将 SQL 发送到该单个数据库 ,就好像 它包含所有表和 SQL 服务器将通过同义词或视图将查询重定向到适当的对象。
我想使用 1 或 2 dbcontext
在一个查询中查询来自不同数据库的多个表。我一直在寻找一些信息,但要使其完美运行似乎并不容易。
我需要同时对来自 3 或 4 个不同数据库的 5 或 6 个表进行多次查询。
- 我试过将
dbcontext
的实现用于另一个,但我遇到了主键问题,如果我只使用一个数据库,我就没有主键。 - 我已经分别尝试了 2
dbcontext
,但出现错误:
Cannot use multiple DbContext instances within a single query execution message.
我读到我可以关联这 2 个数据库,但由于我的企业结构,我不能这样做,而且它不允许我这样做。
这是在 Entity Framework Core 2.2 或 3 中,我都已经尝试过了。我已经创建了数据库,所以我搭建了它们。
我有一个例子,只有 2 个数据库:
var data =
from j in jsa.TbEmp
join i in info.TbcEmpGral on j.fiEmp equals i.fiEmp
where i.fiEmp == 361591
select i.FcName.ToString() + " - " + i.fiDate.ToString();
I want to query multiple tables from different databases [on one server] in one single query
最简单的方法是为单个数据库中的所有表创建视图或同义词。 EF 将无法自动构建模型,但如果您手动创建模型,EF 将简单地将 SQL 发送到该单个数据库 ,就好像 它包含所有表和 SQL 服务器将通过同义词或视图将查询重定向到适当的对象。