web-dev-qa-db-ja.com

Entity Framework 4 / POCO-どこから始めますか?

私はしばらくプログラミングをしており、以前にLINQ-To-SQLとLINQ-To-Entitiesを使用しました(ただし、エンティティを使用する場合はEntity/Table 1-1の関係にあります。つまり、L2SQLとそれほど変わりません)。

Inversion of Control、Unit of Work、POCO、およびリポジトリパターンについて多くの本を読んでいますが、この方法論を新しいアプリケーションで使用したいと思います。

私が苦労しているのは、EF1の知識を前提としない、EF4の明確で簡潔な初心者ガイドを見つけることです。

私が答える必要がある特定の質問は次のとおりです。

コードを最初に、モデルを最初に? EF4に関する長所/短所(つまり、最初にコードを作成し、後日コードを変更し、DBモデルを再生成する必要がある場合はどうなりますか-データは保持され、変換またはドロップされますか?)

私がコードファーストになると仮定すると(EF4がそれをDBスキーマに変換する方法を知りたい)、実際にどのように始めるのですか?エンティティダイアグラムに「これが私のエンティティモデルです。今から…」という記事をよく目にします-残念ながら、デザイナでモデルを作成して保存したかどうかはわかりませんコードを生成した後、自動コード生成を停止しました-または-コーディングしました(POCO)?クラスと何らかの形でそれらをdeisgnerビューにインポートしましたか?

私が本当に必要なのは、DBから直接EFモデルを生成するのではない場合、「魔法」の出所とそれを自分で追加する方法を理解することだと思います。

私は質問が少しあいまいであることに気づいていますが、私が知らないことを知りません-それで、どんな入力/訂正/説明も高く評価されました。

言うまでもなく、私は誰もここに座ってEFを教えてくれるとは期待していません-良いチュートリアル/フォーラム/ブログ/などが欲しいです。完全なエンティティ初心者向け

183
Basic

これらの記事は興味深いかもしれません...このシリーズでは、POCOアプローチの長所と短所を実際に取り上げています。

http://blogs.msdn.com/b/adonet/archive/2009/05/21/poco-in-the-entity-framework-part-1-the-experience.aspx

http://blogs.msdn.com/b/adonet/archive/2009/05/28/poco-in-the-entity-framework-part-2-complex-types-deferred-loading-and- explicit-loading.aspx

http://blogs.msdn.com/b/adonet/archive/2009/06/10/poco-in-the-entity-framework-part-3-change-tracking-with-poco.aspx

これらの記事で、著者はリポジトリと作業単位のパターンを実装する際のベストプラクティスを説明する将来の記事に言及していますが、それらは見つかりません。これらの記事はよく書かれているので、この著者からもっと読みたいです。

56
KellySandwiches

私はこれに遭遇しました: http://blogs.msdn.com/adonet/pages/feature-ctp-walkthrough-code-only-for-the-entity-framework.aspx

これにより、コードを段階的に最初に取得できます。 EF4にはCTP 3が必要です(その記事からリンクされたダウンロード)。

これは私が望んでいたものにかなり近いです(ただし、CTPに依存しないソリューションが理想的でしたが)

11
Basic

30分ほどかかり、現在のVSで安定したEF1.0モデルを生成することをお勧めします。これにより、EF 4.0のメタファーと概念を理解するための大きな道が開かれます。単純な顧客、製品、注文のデータベースを作成するだけです... Northwindを使用せず、独自に作成することをお勧めします。

7

これはすばらしい質問ですが、Entity Frameworkが成熟し続けているため、最新の状態を保つのは困難です。おそらく、最新の状態を維持するために開始する最適な場所は、 MicrosoftのEFページ です。

Googling中に役立つと思われた他のいくつかのリンク(Code Firstに焦点を当てています):

4
Dan

Lermanの本または「Pro linq object-relational mapping」のような単純なものを使用できます。すべての概念はPOCOでも同じですが、コード生成を無効にし、edmx csdlでモデルに直接マップする(または独自のPOCOジェネレーターを作成する)必要があります。すべてのマッピングの原則も同じです。とにかく、実行時にPOCOオブジェクトから派生したプロキシで作業しているため、インターセプトサポート(POCOプロパティの仮想化)を考慮する必要があります。

3
Voice
3
Daniel

エンティティフレームワークのPOCOテンプレートの ウォークスルー は、かなり見栄えが良かったです。 ADO.NETチームブログ もご覧ください。 EFの知識の基礎として最初(EF v1.0)から始めたい場合、Julia Lermanの Programming Entity Framework 本は非常に完成しています。

2
DaveB

回答についてコメントする担当者はいませんが、ジンキンツの回答のフォローアップは次のとおりです。

Entity Framework 4.0でのリポジトリおよび作業ユニットのパターンの使用:

http://blogs.msdn.com/b/adonet/archive/2009/06/16/using-repository-and-unit-of-work-patterns-with-entity-framework-4-0。 aspx

2
woggles

接続されていないシナリオを使用する場合は、特別な第4章のJulie Lermanの本「Programming DbContext」を読むことをお勧めします。

私はブログなどで多くの例を見つけましたが、それらのほとんどすべては接続されたシナリオに関するものです。

私も始めています。これらの本は私を大いに助けてくれました。ところで、私は彼女に3冊の本を買った。

1
Rodolfo

ジュリアラーマンには 紹介ビデオのニースシリーズ があり、それぞれ約10分です。入門ですが、学習の障害となる可能性を回避する実用的なヒントがたくさんあります。私は特に、SQL Server Profilerを使用して実際のSQLが進行するのを見る彼女のデモンストレーションが気に入りました。

1
David Pope

うわー、たくさんの答え。 POCO +インターフェース+リポジトリを完全に生成するT4テンプレートの微調整バージョンを含む例はどうですか?

https://entityinterfacegenerator.codeplex.com

0
Believe2014

私は同じ答えを探していましたが、出会いました http://www.dotnetcurry.com/ShowArticle.aspx?ID=599

リンクの最後には、Entity Framework 4を使用するためのリンクがほとんどありません。

お役に立てれば

0
DotNetInfo