2011-06-13 8 views
46

私はEntity Frameworkの流暢なAPIについて聞いていますが、私はこれに関する良い参考文献を見つけるのに苦労しています。それは何ですか?Entity Frameworkの流暢なAPIとは何ですか?

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

同様に、それほど広い質問でない場合、POCOとは何ですか?私はそれがPlain Old CLR Objectsを表していることは知っていますが、デザイナーモデルツールで既にEFを使用している人として私が何を意味するのでしょうか?その質問があまりにも曖昧なら、それを無視してください。私はここで学んでいます。あなたが提供したいと思う情報は参考になります。

答えて

50

Entity Framework 4.1では、データベースモデルを記述するコードの第1のアプローチが導入されています。これはPOCO(Plain Old CLR Objects)とも呼ばれます。この考え方は、データベースを最初に構築し、そこからモデルを作成するのではなく、これらのクラスからデータベースを構築できるということです。

これに関する数多くの良いブログ記事とMSDNドキュメントがあります。

modelBuilder.Entity<Category>().HasKey(c => c.CategoryCode); 
:開始するには良い場所が

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

よろしく

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流暢なAPIになり、これは基本的に、データベースなどを構築するためにEFクラスを使用しています

したがって、Categoryテーブルにプライマリキーがあることを手動で指定しています`CategoryCode '。また、このようにPKを宣言することができます。

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

[Key]属性は、POCOの質問への対応Data Annotations

+2

ジェイソンを確認することができ、私は流暢なAPIの代わりにデータ注釈を使用することを決めた場合、私は大きな何かが欠けています。私はMVCから始まっています。このトピックは私にとって大きな曲線です。 – Crismogram

+4

私はあなたが行方不明だとは思わない。しかし、私は流暢なAPIを使用すると、別のクラスに関連付けられている属性にその設定を広めるのではなく、すべてのデータベース設定を1つの方法で実行できることを意味します。だからあなたが本当に好む方法の場合です。 –

6

POCOはPlain Old CLRオブジェクトの略です。

Article Fluent APIです。

0

から来ている:私は現在、私に取り組んでいるアプリケーションににデータを渡すために、POCOのを使用しています私のSilverlightフロントエンド(EFはそれをカットしていませんでした)。本質的には、EFモデラーが作成したエンティティを使用して、シリアライズ可能なバージョンにマッサージし、ワイヤで前後に送信します。 POCOは、必要なときに抽象化の層を提供するためにそこにあります。私はDAOパターンのようなDBアクセスのために通常使用する代わりに、DAOパターンを直列化に使用すると考えています。

0

基本的には、EFの文脈では、POCOクラスは、あなたが最初にデータベースにデフォルトで得るものである(Entity FrameworkのEntityObjectクラスから継承していないエンティティクラスですhttp://www.asp.net/entity-framework/tutorials/creating-an-entity-framework-data-model-for-an-asp-net-mvc-application

にPOCOクラス上の段落を参照してください。またはモデルファースト)。他の答えの1つが述べるように、これによりオブジェクトのシリアル化が容易になりますが、いくつかの開発および自動化されたテスト方法では、Entity Frameworkへの参照を持たないオブジェクトを扱う方が好きです。

関連する問題