web-dev-qa-db-ja.com

Entity Framework Fluent APIとは何ですか?

Entity Framework fluent-apiについてはよく耳にしますが、これに関する適切なリファレンスを見つけるのに苦労しています。それは何ですか?

提供されているエンティティフレームワークとモデリングツールを使用します。それだけですか?それとも何か違うのですか?

同様に、質問が広すぎない場合、POCOとは何ですか? Plain Old CLR Objectsの略ですが、デザイナーモデルツールで既にEFを使用している人にとって、それはどういう意味ですか?その質問があいまいすぎる場合は無視してください。私はここで学んでいるだけで、あなたが喜んで提供する情報は役に立ちます。

52
Chev

Entity Framework 4.1は、データベースモデルを記述するコードファーストアプローチを導入しています。これはPOCO(プレーンオールドCLRオブジェクト)とも呼ばれます。最初にデータベースを構築し、そこからモデルを作成するのではなく、これらのクラスからデータベースを構築できるという考えです。

これに関する優れたブログ記事とMSDNドキュメントがたくさんあります。始めるのに良い場所は

http://blogs.msdn.com/b/adonet/archive/2010/12/14/ef-feature-ctp5-fluent-api-samples.aspx

http://weblogs.asp.net/scottgu/archive/2010/12/08/announcing-entity-framework-code-first-ctp5-release.aspx

http://weblogs.asp.net/manavi/archive/2011/03/27/associations-in-ef-4-1-code-first-part-1-introduction-and-basic-concepts。 aspx

流れるようなAPIに関しては、これは基本的にEFクラスを使用してデータベースを構築します。例:

modelBuilder.Entity<Category>().HasKey(c => c.CategoryCode);

したがって、Categoryテーブルには「CategoryCode」という名前の主キーがあると手動で述べています。次のようにPKを宣言することもできます。

public class Category
{
    [Key]    
    public int CategoryCode { get; set;}
}

[Key]属性は Data Annotations に由来します

56
Jason Evans

POCOは、Plain Old CLR Objectの略です。

記事 Fluent API。

5
Xaisoft

MSDNのCode First Fluent APIセクションもこちらで確認できます http://msdn.Microsoft.com/en-us/library/hh295844

POCOの質問への回答:現在作業中のアプリケーションでは、POCOを使用して、Silverlightフロントエンドにデータを渡します(EFはそれをカットしませんでした)。基本的に、私はEFモデラーが作成したエンティティを使用し、それらをシリアライズしやすいバージョンにマッサージしてから、ワイヤを介してやり取りします。 POCOは、必要なときに抽象化の層を提供するためにあります。私は、DAOパターンを通常のようにDBアクセスに使用するのではなく、DAOパターンをシリアル化に適応させるものと考えています。

0
Eric Andres

http://www.asp.net/entity-framework/tutorials/creating-an-entity-framework-data-model-for-an-asp-net-mvc-applicationのPOCOクラスに関する段落を参照してください

基本的に、EFのコンテキストでは、POCOクラスはEntity Framework EntityObjectクラス(Database FirstまたはModel Firstでデフォルトで取得されるもの)を継承しないエンティティクラスです。他の回答の1つが言及しているように、これによりオブジェクトのシリアル化が容易になりますが、一部の開発および自動テストの方法論では、Entity Frameworkへの参照を持たないオブジェクトを使用することを好みます。

0
tdykstra