ORM 的哪些选择允许在“轻按开关”之间更改 RDBMS...SQL Server/SQL Azure 和 PostgreSQL/“云”PostgreSQL

Posted

技术标签:

【中文标题】ORM 的哪些选择允许在“轻按开关”之间更改 RDBMS...SQL Server/SQL Azure 和 PostgreSQL/“云”PostgreSQL【英文标题】:What choices of ORM allow for near 'flick a switch' to change RDBMS between...SQL Server / SQL Azure and PostgreSQL / 'Cloud' PostgreSQL 【发布时间】:2012-05-15 15:57:08 【问题描述】:

鉴于以下约束:

我将开发一个全新的网站。 我将使用 C# 和 ASP.NET MVC 带有单声道的 Linux 会很好,但 windows 是可以接受的限制(如果是,请提及)。

现在有趣的一点:

我希望尽可能接近能够“轻弹开关”以在 SQL Server/SQL Azure 和 PostgreSQL/基于云的 PostgreSQL 之间更改 RDBMS。

我想尽可能地利用 ORM(ORM 必须理想地只需要更改设置即可切换到其中一个备用数据库后端)。

这应该包括以同样的方式调用存储过程。

为了许多人的利益,我正在寻找具有实践经验的详细限制的选项。

给出“不可能”或“不要打扰”之类的答案。 请以任何其他方式比较 ORM,而不是它们执行上述操作的能力以及保留了多少功能。这应该变成 x ORM 优于 y ORM。 请讨论 SQL Azure 与专用托管的限制。 请讨论 SQL Server 或 PostgreSQL 的差异、优势/劣势、存储过程转换等。 请讨论存储过程中应包含哪些内容以及服务层中应包含哪些内容。

【问题讨论】:

回答你的问题有很多规则。 是的...保持对问题的关注。我知道它有点满了。 :-) 我遇到了两个类似的问题:Mentions Nhibernate and Dataobjects ORM。 Entity framework Specific 【参考方案1】:

看来Entity Framework 支持您的要求。绝对可以connect to both of your providers。看起来你也可以使用存储过程,但这有点模糊。

我相信您翻转的唯一“开关”在 .config 文件中(没有重建)。

顺便说一句,新的 EF Code First + Migrations 位非常简洁。我一直在本地将它们与 SQL Server 一起用于开发,并在 SQL Server 云主机上用于生产。我对他们很满意。

【讨论】:

谢谢,我知道 devart,但不知道 virtuoso 和 PgFoundry 提供者。我会赞成您的回答,但我不会将其标记为已接受...希望其他人可以提供更详细的信息。你以“我相信”开头的陈述让我仍然不确定。到时候(如果没有其他答案)我想我可以尝试一个带有几张表的简单项目,并尝试在这些提供程序之间切换。我还没有使用实体框架,所以我不知道更好。 标记为已回答,我已进一步调查。我喜欢以下 Micro ORM 的外观:Peta-Poco Dapper、ORM-Lite 出于性能原因,但出于脚手架/RAD 原因,我可能最初使用 EF5。

以上是关于ORM 的哪些选择允许在“轻按开关”之间更改 RDBMS...SQL Server/SQL Azure 和 PostgreSQL/“云”PostgreSQL的主要内容,如果未能解决你的问题,请参考以下文章

如何在选择器中传递自定义 UITableViewCell

动态选择 django orm 列

Redux-ORM introduce

在 TensorBoard 中更改图像滑块步骤

有没有办法跟踪Django ORM中的事务更改?

ORM(学说)和SQL之间的代码比较?