Entity Framework Oracle 和 Sql Server - 如何构建独立于数据库的应用程序

2023-11-24

我们正在尝试构建一个同时使用 Oracle 和 SQL Server 的数据访问层(不同时)。

我们使用 EF Model-first 来创建模型并创建用于构建数据库的 SQL 脚本。我们的第一个想法是创建 2 个 EDMX 文件,每种类型一个,并根据客户的需求使用适当的文件。我们使用 Oracle 和 SQL Server 数据库生成工作流程和 DDL 生成模板来为每个数据库创建脚本。

我们的主要问题是,当数据库模式发生更改时,我们不想删除并重新创建数据库,而只想创建迁移脚本来根据我们的模型更新数据库(客户端有许多数据将丢失)。

我们使用 EF power pack 来提取 SQL Server 的迁移脚本,但 Oracle 没有类似的工具。

我们希望帮助找到一个好的数据层(如果可能且不复杂,则为 Oracle 和 SQL Server 提供 1 个 EDMX),以及一种从我们的模型生成数据库更改的好方法,以便在新应用程序发布时更新现有客户端数据库

我们发现这是一个起点http://msdn.microsoft.com/en-us/data/ff830362但没有提及 Oracle 支持。

我们尝试过代码优先和 EF 迁移,但 Oracle 在数据库创建和迁移方面再次失败。

关于我们如何实现这一目标有什么建议吗?

谢谢


无法为 SQL Server 和 Oracle 提供单一 EDMX。 EDMX 由三部分组成:CSDL(实体定义)、SSDL(数据库定义)、MSL(这些定义之间的映射)。 SSDL 必须始终针对具体数据库,因此您至少需要针对 Oracle 和 SQL Server 的单独 SSDL,如果幸运的话,您也不需要单独的 MSL(映射必须完全相同,如果您使用任何工具来生成映射,则可能不会发生这种情况)数据库)。

因此,您始终需要至少部分 EDMX 文件作为第二个数据库并手动维护它。

如果您需要支持 Oracle 的数据库迁移,您必须寻找 Oracle(或第三方)的工具。例如RedGate提供支持架构迁移的工具SQL服务器 and Oracle.

Visual Studio Premium 和 Ultimate 版本还提供了用于比较数据库架构的工具。默认情况下,它仅支持 SQL Server,但蟾蜍扩展还应该添加对 Oracle 的支持。

一旦您拥有这些工具中的任何一个,您只需将客户服务器上部署的架构与新架构进行比较,该工具就会为您创建迁移脚本。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Entity Framework Oracle 和 Sql Server - 如何构建独立于数据库的应用程序 的相关文章

随机推荐

  • 如何计算 R 中样条函数的导数?

    R 可以使用 splines 库中的 splinefun 生成样条函数 但是 我需要评估该函数的一阶和二阶导数 有没有办法做到这一点 例如 library splines x lt 1 10 y lt sin pi x just an ex
  • 在 Meteor-Cordova 应用程序中播放声音

    使用没有cordova的流星我可以在浏览器中使用以下命令播放声音 new Audio test mp3 play where test mp3位于公用文件夹中 但是 一旦我在设备上将我的应用程序作为 cordova 应用程序运行 我就无法播
  • 选择元素的增长方式与显示 Flex 中的输入元素的增长方式不同

    我出现了意想不到的行为在我的设置中 输入按预期水平增长 但在具有选择控件的行上 增长似乎被扭曲 我怀疑某些风格有所不同 但仔细检查后却一无所获 谷歌搜索没有给出任何信息 我找不到任何关于隐式边距或选择填充的信息 这是关于什么的以及我该如何杀
  • JavaScript 异常列表

    这次我没有任何问题 但出于好奇 我想知道 JavaScript 中有多少异常 例如我正在使用以下代码
  • 将 pandas csv 保存到子目录

    我试图将以下代码的输出保存到子目录中 for gp in g filename gp 0 csv print filename gp 1 to csv filename 我首先创建了子目录 os makedirs MonthlyDataSp
  • 俄语 mongodb 全文搜索

    我正在尝试在 mongodb 中使用全文搜索 gt db collection insert text gt db collection insert text gt db collection insert text gt db coll
  • 无法验证应用程序并将其提交到 Mac App Store

    我已经为 iOS 应用程序进行了无数次协同设计和提交 这次让我震惊的是 Mac App Store 我反复收到相同的错误消息 我的名字 是一个有效的身份 然而 您没有关联的包标识 我在堆栈溢出上认识到这两个主题 mas 代码签名身份私钥 a
  • 当使用 Object.create(null) 创建对象时 __proto__ 如何工作

    考虑以下 JavaScript 代码 var a Object create null a foo 1 var b Object create a console log b foo prints 1 console log b proto
  • 切换两个 INT 变量的大小写

    考虑以下代码 if xPoint gt 0 yPoint gt 0 m navigations Directions SouthEast else if xPoint gt 0 yPoint lt 0 m navigations Direc
  • 如何在UIView上设置渐变边框?

    在上面放置一个简单的边框非常容易UIView 您只需链接到QuartzCore 导入它并使用 self view layer borderColor UIColor redColor CGColor self view layer bord
  • 使用fork时内存是如何映射的?

    我是 fork 的新手 我到处都读到 当调用 fork 时 当前 调用 进程的精确副本就会启动 现在 当我运行以下代码时 应该有两个不同的进程 有两个不同的进程分配给它们的变量和函数的内存位置 include
  • 如何关闭 sbcl 中的调试器

    我目前正在尝试学习 common lisp 并且一直在使用 sbcl 我希望这是一个不错的实现选择 来自 ruby 和 irb 的我发现此时每个错误的自动转移到调试器有点烦人 有没有办法在我玩的时候暂时关闭它 Common Lisp 有一个
  • Wicked PDF +字体+heroku+rails3.2

    我在用着邪恶 pdf使用 Rails 3 2 11 和 ruby 1 9 3 从 HTML 生成 PDF 并部署到 Heroku 我的 pdf css scss erb font face font family DosisMedium f
  • 如何在 Symfony 4 结构的参数文件中检索环境变量?

    我使用 Symfony Flex 进行了全新的 Symfony 安装 新的框架属于下一个 Symfony 4 目录结构 我添加并配置第一个第三方包 HWIOAuthBundle 该捆绑包用于使用两个秘密信息通过 Twitter 进行连接 我
  • 计算两个 NSString 之间的差异数

    如何计算两个 NSString 之间的差异数 Example NSString 1 this is a string NSString 2 Tihs isa string 应返回 4 一个用于大写 T 一个用于 i h 和缺少的空格 您正在
  • 迭代 NSString 中所有字符的最有效方法

    迭代 NSString 中所有字符的最佳方法是什么 您想循环遍历字符串的长度并使用该方法吗 aNSString characterAtIndex index 或者您想使用基于 NSString 的字符缓冲区 我认为人们了解如何处理 unic
  • 创建多个可放置的兄弟姐妹,并将其放置在彼此之上

    我正在尝试创建多个彼此相邻的 jquery droppable 其中某些部分可能重叠 在这些情况下 我希望位于顶部 z 索引明智 的那个是贪婪的 我尝试过设置greedy truedroppable 中的选项 但这似乎没有帮助 我也尝试过r
  • 调试时会忽略依赖项 org.json:json:20090211,因为它可能与 Android 提供的内部版本冲突

    当我运行 android studio 时 出现以下警告 调试时会忽略依赖项 org json json 20090211 因为它可能与 Android 提供的内部版本冲突 如果出现问题 请用jarjar重新打包更改类包 我该如何解决这个错
  • 合并多个文件的 MD5 哈希值

    我有 7 个文件要为其生成 MD5 哈希值 哈希值用于确保数据存储的远程副本与本地副本相同 不幸的是 这两个数据副本之间的链接速度非常慢 数据的更改非常罕见 但我要求数据始终 或尽快 同步 我不想通过我的 非常慢的 通信链路传递 7 个不同
  • Entity Framework Oracle 和 Sql Server - 如何构建独立于数据库的应用程序

    我们正在尝试构建一个同时使用 Oracle 和 SQL Server 的数据访问层 不同时 我们使用 EF Model first 来创建模型并创建用于构建数据库的 SQL 脚本 我们的第一个想法是创建 2 个 EDMX 文件 每种类型一个