c# - 实体框架连接来自两个不同实体的表
问题描述
我正在处理一个包含超过 15 个数据库的项目,我总是需要连接来自不同实体的表,所以我最终使用.ToList
.
我有一个朋友的建议,做一个数据库链接服务器,然后在同一个数据库中为所有引用表创建视图。
但我对他们俩都不满意。
除了 & 数据库视图之外,还有其他解决方案.ToList
吗?在这种情况下,最佳做法是什么?
解决方案
有很多方法可以解决这个问题,每种方法都有自己的缺点。
带有视图的链接数据库
从 SQL Server 外部访问数据的能力。
能够在整个企业的异构数据源上发布分布式查询、更新、命令和事务。
以类似方式处理不同数据源的能力。
第三点正是你的情况。如果需要,您还可以链接多个数据库,如 mysql。
虽然有很多缺点(请查看此处)。我会添加一个我自己的并说
使用代码和自动映射器实现
如果所有表都相似,那么您可以使用 automapper 之类的工具从您的数据中创建简单的列表
- 使用实体框架获取数据
- 使用自动映射器映射到具有公共属性的 DTO 对象
- 将您的列表与 Range add 合并。
重复数据
我们生活在一个 nosql 解决方案与 RDBMS 解决方案一起使用的世界中。可能是您创建了一个通用数据库(RDBMS 或 nosql 或适合您的任何东西),并在那里复制您的数据。
这是额外的工作,但它的使用速度最快。
我可以想更多,但这是它的要点。
推荐阅读
- c# - C ++多个接口仅在返回类型上有所不同?
- oracle - 如果删除的行的 datefin 字段未超过一年,我创建了一个触发器以引发错误
- java - 如何在 Java 8 中的两个流之间进行搜索
- c# - 为使用 SSH.NET SshClient.CreateShellStream 执行的命令 (sudo/su) 提供子命令
- mysql - 无法使用 Aurora MySQL 本机函数调用 Lambda 函数
- node.js - 如何解决 Socket.io 客户端等待发射消息直到完成运行发射?
- android-studio - 推荐使用哪个 Android Studio 3.3 Build 变体?
- python - dask可以读取块中的压缩文件吗?
- android - 如何从android中的活动刷新片段列表
- c# - c#:无法与服务器建立连接