我正在整合一些遗留系统。他们每个人都有不同的数据库;我需要为其中的大多数编写数据访问代码。
无法更改数据库模式(我可能可以应用一些索引等,但表及其列必须保留结构)。一些数据库设计良好,具有适当的关系和主/外键,而其他一些数据库则非常缺乏。
您会为此任务选择哪个 ORM?我想在整个项目中使用相同的 ORM;我的要求是:
- 能够在代码中重命名表或列;但在数据库中保留旧名称。
- 合理的代码生成
- 高效的 LINQ 支持(针对数据模型的 LINQ 查询应转换为高效的 SQL)。
- 生成的数据类最好是POCO 的。
- 最好支持不同的数据库引擎。
我目前对 LINQ-To-SQL 的经验最丰富;但我觉得这可能是这个项目的错误选择。我愿意花一些时间来学习一个新的框架。