【问题标题】:Supporting both SQL Server and Oracle in an EF DB first scenario在 EF DB 优先方案中同时支持 SQL Server 和 Oracle
【发布时间】:2014-04-17 10:44:45
【问题描述】:
我参与了一个使用实体框架 + 数据库优先 + SQL Server 的项目。已决定应用程序必须在不更改代码库的情况下也支持 Oracle。
所以我对基本原型的想法如下:每当 SQL Server DB 发生变化时
- 将更改迁移到 Oracle
- 从两个 DB 生成 EDMX 文件
- 使用 T4 设置连接字符串和与代码库一起使用的 EDMX
这样好吗?有没有更好的方法?
谢谢。
【问题讨论】:
标签:
sql-server
oracle
entity-framework
ef-database-first
【解决方案1】:
我认为这个问题更多的是品味问题,而不是对与错。
只要它在您的测试中正常运行 - 你就很好。
虽然 - 重要的是要记住,EF 并不意味着允许在不修改代码的情况下更改数据源。
因此 - 我认为这个要求存在一个基本问题。
我想说 - 要么使用 OLEDB/ODBC,这正是为此而设计的,所有查询都在配置文件中,要么期望通过 DBMS 引擎更改来更改代码。
请记住,DBMS 中存在的数据类型是不同的,例如 - Oracle BLOB 不像 MSSQL 二进制文件...
所以 - 我想说两件事:
1. 如果代码通过了您的测试,并且您对结果感到满意 - 您使用的技术正在发挥作用。
2. 使您使用的技术符合您的要求.. EF 作为基础技术不符合您的要求。 ODBC/OLEDB 做。