【发布时间】:2019-10-28 23:24:25
【问题描述】:
我想用 1 或 2 个 dbcontext 在一个查询中查询来自不同数据库的多个表。我一直在寻找一些信息,要让它完美运行似乎并不容易。
我需要同时对来自 3 或 4 个不同数据库的 5 或 6 个表进行多次查询。
- 我尝试在另一个数据库中使用
dbcontext的实现,但是如果我只使用一个数据库,我会遇到主键问题。 - 我已经分别尝试了 2 个
dbcontext,但出现错误:
不能在单个查询执行消息中使用多个 DbContext 实例。
我读到我可以关联 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();
【问题讨论】:
-
非常糟糕,尤其是因为您拥有“巨大”的数据库。这将异常缓慢且资源密集。我建议您研究一种将所有数据复制到单个数据库中然后进行查询的方法。
-
我的团队希望迁移到 EFC 以获得更大的代码灵活性。我们正在尝试查看哪种 ORM 更好并且更适合我们的需求,因为我们使用庞大的预算和成本控制数据库。由于在将 sql 查询映射到对象并在必要时嵌入 SQL 语法时具有灵活性,我们正在进入 EFC。我无法将一个数据库的所有数据复制到另一个数据库,因为有很多,而企业不允许我这样做。
-
这些数据库是在一台还是多台服务器上?
-
他们在一台服务器上。
标签: c# sql-server orm entity-framework-core asp.net-core-2.2