首页 > 解决方案 > 实体框架连接来自两个不同实体的表

问题描述

我正在处理一个包含超过 15 个数据库的项目,我总是需要连接来自不同实体的表,所以我最终使用.ToList.

我有一个朋友的建议,做一个数据库链接服务器,然后在同一个数据库中为所有引用表创建视图。

但我对他们俩都不满意。

除了 & 数据库视图之外,还有其他解决方案.ToList吗?在这种情况下,最佳做法是什么?

标签: c#databasevb.netentity-framework

解决方案


有很多方法可以解决这个问题,每种方法都有自己的缺点。

带有视图的链接数据库

检查Microsoft 文档上的用法

从 SQL Server 外部访问数据的能力。

能够在整个企业的异构数据源上发布分布式查询、更新、命令和事务。

以类似方式处理不同数据源的能力。

第三点正是你的情况。如果需要,您还可以链接多个数据库,如 mysql。

虽然有很多缺点(请查看此处)。我会添加一个我自己的并说

使用代码和自动映射器实现

如果所有表都相似,那么您可以使用 automapper 之类的工具从您的数据中创建简单的列表

  1. 使用实体框架获取数据
  2. 使用自动映射器映射到具有公共属性的 DTO 对象
  3. 将您的列表与 Range add 合并。

重复数据

我们生活在一个 nosql 解决方案与 RDBMS 解决方案一起使用的世界中。可能是您创建了一个通用数据库(RDBMS 或 nosql 或适合您的任何东西),并在那里复制您的数据。

这是额外的工作,但它的使用速度最快。

我可以想更多,但这是它的要点。


推荐阅读