LINQ 到 XYZ 多态性?

2024-02-01

我遇到过这样的情况:客户要求我们实现数据访问代码,以根据运行时配置设置使用 Oracle 或 SQL Server 数据库。生产环境使用 Oracle,但开发和 QA 都针对 SQL Server 实例运行。

(我对此没有任何控制权,也没有任何背景了解为什么会出现这种情况,除了 Oracle 是他们的 BI 平台并且开发人员希望使用 SQL Server。)

他们的要求是使用 LINQ-to-SQL / LINQ-to-Oracle 进行所有数据访问。他们需要支持应用程序,并且还不具备跳入 EF 的知识(他们的要求) - 尽管我相信如果我们使用 EF 也会存在同样的问题。

虽然我可以为两个数据库实现 LINQ to XYZ 类,以便可以连接到这两个数据库,但它们不共享公共接口(DataContext 除外),因此我确实无法针对接口进行编码并在运行时插入实际实现。

有什么想法我应该如何处理这个问题?

UPDATE写完这篇文章后,我对 EF 进行了一些调查,在我看来,如果我使用 EF,也会存在同样的问题 - 这将是我的长期目标。


只是一个快速的想法。使用MEF framework并将您的 DAL 层插入其中。然后根据环境(开发、生产、QA),您可以切换到各个 DAL 层(Oracle、SQL 等)。

如果您想了解MEF,here http://msdn.microsoft.com/en-us/library/dd460648.aspx是一个快速介绍。

不久前我还看到过通用数据访问框架 http://www.deitel.com/ResourceCenters/Programming/ADONET/ADONETDataAccessLayer/tabid/3176/Default.aspx作者:乔迪普·坎吉拉尔。您甚至可以查看一下。

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

LINQ 到 XYZ 多态性? 的相关文章

随机推荐

  • 如何使用Hibernate带来的JBoss日志记录?

    我正在编写使用 Hibernate 的独立 java 应用程序 梅文带来了jboss logging图书馆对我来说 我没有使用 JBoss 问题是 我可以只使用这个库进行日志记录 还是需要下载一些日志记录实现 例如log4j JBoss L
  • 垂直对齐块元素中的文本

    我知道总是有人问垂直对齐 但我似乎无法找到这个特定示例的解决方案 我希望文本在元素内居中 而不是元素本身居中 li a width 300px height 100px margin auto 0 display block backgro
  • 如何在 React 中渲染对象数组?

    你能告诉我如何在 React js 中渲染列表吗 我喜欢这个 https plnkr co edit X9Ov5roJtTSk9YhqYUdp p preview https plnkr co edit X9Ov5roJtTSk9YhqYU
  • Android:如何在缩放和平移后获取图像的X,Y坐标

    我正在开发一个具有缩放和平移图像的应用程序 现在 当用户触摸图像 缩放和平移之后 时 我需要获取图像的 X y 坐标 而不是诸如方法 event getX 和事件之类的屏幕坐标 getX 帮助我 非常感谢 我知道这个问题有点老了 但我面临着
  • 重启浏览器后右键菜单消失

    我正在开发一个 chrome 扩展 我在扩展程序的右键菜单中添加了一个新的菜单项 安装后工作正常 然后当我重新启动浏览器时 新的右键菜单项消失了 但是扩展工作正常 只有新的菜单项消失了 我比较了chrome官方的contextMenu示例
  • 链接不适用于 jsp 和 jquery(如何在 jsp 页面中的锚标记中链接 websiteurl)

    在我的本地主机中它正在工作 但在我的网站上www step2java com the Java核心链接不起作用 部署后 他们将项目根文件夹放入我的 public html 中 例如 Step2java 请告诉我如何解决 我只使用jsp和jq
  • 在移动视口隐藏或删除 div 类?

    首先 我非常了解 CSS 媒体查询 我的问题是这样的 当你将 div 类堆叠在一个 div 中时 例子 div class class1 class2 div 并且您想删除 class2 media 最大宽度 768px 创建以下输出 di
  • Javascript 代理 set() 继承对象上的本地属性

    根据MDN https developer mozilla org en US docs Web JavaScript Reference Global Objects Proxy handler set handler set 可以捕获继
  • 查找空白注入 PHP 文件

    PHP 文件中的空格有时会出现问题 因此我尝试查找符合常见问题标准的文件 我试图递归地查找具有以下一个或两个条件的所有文件 1 不以 a 开头 lt or 特点 and or 2 不以a结尾 gt 字符 除非它确实以右大括号结尾 后跟任意数
  • 连接 VPN 服务器时“Error Domain=NEVPNErrorDomain Code=1 \"(null)\"”

    我在连接到 VPN 服务器时仅第一次收到 Error Domain NEVPNErrorDomain Code 1 null 之后就可以正常工作了 我查过尝试启动 TunnelProvider 网络扩展时出现 NEVPNErrorDomai
  • 如何使用 Magit 中的 git mv ?

    Is there a nice way to call git mv on a file from within magit I know it s possible to run any git command with but this
  • jquery href 和 onclick 分离

    我有这样的代码 a href Link a func2 返回 true 或 false 然后 仅当 function2 返回 true 时才调用 func1 正确的 在学习jquery的过程中 发现onclick不好 而且贬值 所以我将上面
  • 托管私人 Sphinx 文档 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我目前正在使用 Sphinx 为一个相当复杂的 Django 网站编写一些广泛的文档 我一直在内部从事
  • 在 Angular js 中使用 ng-class 中的函数

    我在用ng class用于添加 CSS 类 尽管有很多关于此的文章 但我无法添加函数调用ng class 我有以下表达 ng class highlighter row Class file id 1 file processed bold
  • 如何在 Visual Studio Code 中为我的 Electron 应用程序使用 ${workspaceRoot}?

    我有一个 Electron 应用程序 我可以在 Visual Studio Code 中调试它 我升级到版本 0 10 8 后 它将不再运行 我在 launch json 文件中收到以下错误消息 相对路径将不再自动转换为绝对路径 考虑使用
  • 通过 XSD 限制基于另一个元素的 XML 元素

    我相信这与keyref但我不确定 我真的不确定它是否可以做到 例如 假设我有 myElement1 和 myElement2 如果 XML 文件中没有 myElement2 则 myElement1 必须存在 否则是可选的 有没有办法在我的
  • 使所选项目适合一行,而不是两行

    我有一个非常简单的选择 当我单击菜单时 它会显示 3 个选项 每个选项都在一行上 但是 当我选择一个项目时 它会显示为 2 行 第一行用于文本 另一行用于图标 我该如何使它成为一根线 import styles css import Edi
  • 使用 SqlCommand.Parameters.AddWithValue 时是否应该包含 @?

    在使用 AddWithValue 时 我总是在参数名称中包含 at 符号 但我只是注意到其他人编写的一些代码没有使用它 一种方法比另一种方法更正确吗 cmd Parameters AddWithValue ixCustomer ixCust
  • 在 Snow Leopard 上运行 iPhone 5 模拟器

    我正在我的 mac 上运行 iOS6 SDK 在 Snow Leopard 上运行 Xcode 4 2 使用以下步骤堆栈溢出帖子 https stackoverflow com questions 9613565 is it possibl
  • LINQ 到 XYZ 多态性?

    我遇到过这样的情况 客户要求我们实现数据访问代码 以根据运行时配置设置使用 Oracle 或 SQL Server 数据库 生产环境使用 Oracle 但开发和 QA 都针对 SQL Server 实例运行 我对此没有任何控制权 也没有任何