をオブジェクトにEntity Frameworkの4つのオブジェクトの比較、私は実際には2つの質問があります。ADO.NET C#POCOエンティティジェネレータは
- をEntity FrameworkのエンティティオブジェクトとADO.NET C#POCOエンティティ間の違いは何ですか。
- 以下の正しいリポジトリを使用してレコードを更新していますか?
コード生成をオフにしてからADO.NET C# POCO Entity Generatorを追加すると、Entity Framework 4オブジェクトの素敵なクラス表現が提供されます。
The POCO Template can be used to generate persistence ignorant entity types
from an Entity Data Model.
しかし、これらのオブジェクトは、オブジェクト間の関係だけでなく、バックデータベースへのリンクを持っている:アイデアは(from here)ということです。たとえば、リポジトリから1つを取り出して変更し、リポジトリまたは作業単位レベルで変更を保存し、その内容をデータベースに保存することができます。
私の質問は、ネイティブのEntity Frameworkオブジェクトと、このツールを使用して生成されたこれらのPOCOの違いは何ですか?
これは、リポジトリを使用してレコードを更新すると思います。これは間違っていますか?
- リポジトリからPOCOをリクエストします。
- リポジトリはデータコンテキストからレコードをロードし、見つかったレコードごとに新しいPOCOを作成し、Entity Frameworkオブジェクトの値をPOCOにコピーし、新しいPOCOのコレクションを返します。
- これらのPOCOがリポジトリ外で変更された場合、POCOは保存(POCO)のようなものを使用してリポジトリに戻されます。
- リポジトリは、データベースから一致するレコードをロードし、POCOプロパティをEntity Frameworkオブジェクトにコピーします。
- 1回の呼び出しリポジトリオブジェクトまたは作業単位オブジェクトを使用して保存します。
私はPOCO部分を取得しましたが、リポジトリから来る最終結果オブジェクトがEFオブジェクトと同じ場合、なぜそれを使用しますか? –
EFオブジェクトと同一ではありません。それとも、あなたがその意味を理解していないのですか? –
たとえば、現在のプロパティとしてリレーションがロードされています。シリアル化すると循環参照エラーが発生します。 MVC 3のシリアル化で特定のプロパティを除外するためのオプションがあると信じています... hmmm –