ある程度定義された主キーを持つ100以上のテーブルで構成されるデータベース(MSSQL 2005)を考えてみましょう。テーブル間には「関係」がありますが、これらは外部キー制約では強制されません。
私が扱っている典型的なタイプのテーブルの次の単純化された例を考えてみましょう。User テーブルと City テーブル、Province テーブルの間には明確な関係があります。ただし、重要な問題は、テーブルのデータ型と命名規則に一貫性がないことです。
User:
UserRowId [int] PK
Name [varchar(50)]
CityId [smallint]
ProvinceRowId [bigint]
City:
CityRowId [bigint] PK
CityDescription [varchar(100)]
Province:
ProvinceId [int] PK
ProvinceDesc [varchar(50)]
このデータ ソースを使用するアプリケーション (ASP.net MVC) を MVC ストアフロントと同様の設計で書き直すことを検討しています。しかし、私は概念実証段階を経ており、これは私が遭遇したつまずきの 1 つです。
簡単に使用できる ORM の選択に関して、どのようなオプションがあり、その理由は何ですか?
ORMを検討する必要がありますか? (私がこれを尋ねる理由は、ほとんどの説明とチュートリアルはすべて、比較的きれいに設計された既存のデータベース、または私のものと比較して新しく作成されたデータベースで機能するためです。したがって、この問題を解決する方法を見つけるのに非常に苦労しています)
既存の SQL クエリは大量にありますが、データマッパー (IBatis.net など) の方が適しているでしょうか? 簡単に変更して動作させ、既に行った投資を再利用できるからです。
SO でこの質問を見つけました。これは、ORM を使用できることを示していますが、これはマッピングの問題であるという印象を受けますか?
注: 現時点では、オブジェクト モデルは存在しなかったため、明確に定義されていません。既存のシステムはほとんどすべてを SQL で処理するか、機能を完成させるために非常に複雑で多数のクエリで構成されていました。私は初心者であり、ORM と MVC に関する経験はまったくありません。したがって、これは私が経験している素晴らしい学習曲線です。