【问题标题】:Can EF6 use oracle database links?EF6可以使用oracle数据库链接吗?
【发布时间】:2023-04-02 06:59:01
【问题描述】:

我们有一个旧版应用程序,我正在用 .net 重写它。我们所有的数据库都是 oracle 并使用数据库链接。 Entity Framework 6 有没有办法根据位于不同数据库中的表生成模型?

目前旧版应用程序从这样的表中获取数据

SELECT * FROM emp@foo2;

它的 db 连接指向数据库 foo,该数据库具有指向数据库 foo2 的数据库链接。

我想使用 EF6 重现此内容。到目前为止,我发现的只是这个question.

【问题讨论】:

  • 只需根据链接创建一个视图。或者,为了更好地处理大型表或不稳定的连接,基于其他数据库中的表创建物化视图
  • 好的,我会调查的。你能指出我如何做到这一点的任何好的资源吗?

标签: oracle entity-framework-6


【解决方案1】:

您可以执行 EF 4 或更高版本可以使用的两件事:

  • CREATE VIEW EMP as SELECT * FROM emp@foo2;
  • CREATE MATERIALIZED VIEW EMP as SELECT * FROM emp@foo2;

如果没有一些扭曲的 PL/SQL 处理来逐个读取 LOB,则无法通过数据库链接访问 LOB。

我认为快速刷新不适用于数据库链接,因此您必须考虑链接数据库上表的大小。如果您正在刷新一百万行,您可能会发现执行此操作的时间是个问题。大多数大型表都充满了永远不会更改的墓碑数据,因此带有最后修改日期的时间戳列可以帮助您创建一个仅挑选出更改数据的包。

如果您正在执行复杂的连接,请确保 Oracle 将作为主键的列视为不为空。

您可以在视图和实体化视图上添加主键,但必须禁用它。详情请见here

【讨论】:

    猜你喜欢
    • 2011-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-19
    • 2020-09-24
    相关资源
    最近更新 更多