我参与了一个使用实体框架+数据库优先+SQL Server的项目。有一个决定是,应用程序必须在不更改代码库的情况下也支持Oracle。
因此,我对基本原型的想法如下:每当SQL Server DB更改时
- 将更改迁移到Oracle
- 从两个数据库生成EDMX文件
- 使用T4设置连接字符串和与代码库一起使用的EDMX
这样可以吗?有更好的方法吗?
谢谢。
我认为这个问题更多的是品味问题,而不是对与错
只要它在测试中正常工作,你就很好。
尽管如此,重要的是要记住,EF并不意味着允许在不修改代码的情况下更改数据源
因此,我认为该要求存在一个基本问题
我想说的是,要么使用OLEDB/ODBC,这正是为了实现这一点,在配置文件中使用所有查询,要么期望随着DBMS引擎的更改而更改代码
请记住,DBMS中存在的数据类型是不同的,例如,Oracle BLOB不是MSSQL二进制。。。
所以-我想说两件事:
1.如果代码通过了你的测试,并且你对结果感到满意,那么你使用的技术就是有效的
2.使您使用的技术符合您的要求。。EF不符合您作为基础技术的要求。ODBC/OLEDB do.