私は多くのレガシーシステムを統合する過程にあります。それらはそれぞれ異なるデータベースを持っています。そして私はそれらのほとんどのためにデータアクセスコードを書く必要があるでしょう。
データベーススキーマは変更できません(いくつかのインデックスなどを適用できる場合がありますが、テーブルとその列は構造を保持する必要があります)。一部のデータベースは、適切な関係と主キー/外部キーを備えたOK設計であり、他のデータベースの一部は、それを非常に欠いています。
このタスクにはどのORMを選択しますか?プロジェクト全体で同じORMを使用したいと思います。そして私の要件は次のとおりです。
- コード内のテーブルまたは列の名前を変更する機能。ただし、データベースには古い名前を保持します。
- 合理的なコード生成
- 効率的なLINQサポート(データモデルに対するLINQクエリは効率的なSQLに変換する必要があります)。
- 生成されるデータクラスは、できればPOCOのものである必要があります。
- できれば、さまざまなデータベースエンジンのサポート。
私は現在、LINQ-To-SQLの経験が最も豊富です。しかし、私はそれがこのプロジェクトにとって間違った選択かもしれないと感じています。私は新しいフレームワークを学ぶことに少し時間を費やすことをいとわない。