ORM POCOはドメインエンティティを置き換えますか?


10

これは、この質問にいくぶん似ていますが、より広義です。

一般的には、EF 4.1のようなオームズはPOCOSをサポートし、それは今あなたのドメインエンティティを持ってしても意味がないことがデータベースに永続化されたオブジェクト?

EF 4やLinq-to-SQLなどの古いORMでは、「データベースオブジェクト」が自動生成され、データベースに密結合されていたため、重要なアプリケーションの場合、より堅牢でインテリジェントなドメインエンティティにマッピングされていました。就職。

新しいORMを使用して堅牢なドメインエンティティを構築し、そのドメインエンティティとDBMSの間のマッピングを提供するだけのデータレイヤーを作成するという考えはありますか?

書面では、これが常に目標であると感じていますが、少なくとも.NETの世界では、利用可能なツールを使用して(簡単に)簡単に実現することはできません。


EFv4は、POCOおよび手書きのクラスへのマッピングもサポートしていました。
Ladislav Mrnka

回答:


9

ORMの一般的な目標は、データベースが、理想的にはPOCOであるドメインオブジェクトに直接マップされることだと思います。だからあなたの質問への答えはイエスです。EFがPOCOにマッピングできるようになったので、それらのPOCOをドメインエンティティと見なすことが理想的です。NHibernateなどの他のORMについては、しばらくの間これが可能であり、一般に人々はそれらをそのまま使用していると思います。

しかし、ドメインエンティティをデータベースに直接マッピングするというこの目標は、常に達成できるとは限りません。データベースとドメインモデル間で重要な変換が必要になる場合があります。ORMは変換を実行できない場合があります。この場合、ORMを使用してデータベースにマップされる中間POCOの層と、それらをドメインPOCOに変更して再度変換する変換層が必要になる場合があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.