BT

EF Feature CTP 4は、コードファーストの更新と生産性の向上を提供する

| 作者: Abel Avram フォローする 7 人のフォロワー , 翻訳者 尾崎 義尚 フォローする 0 人のフォロワー 投稿日 2010年7月29日. 推定読書時間: 5 分 |

原文(投稿日:2010/07/15)へのリンク

先日公開されたEntity Framework Feature CTP 4は、新しいコード規則とデータアノテーションによるコードファーストプログラミングモデルを更新し、DbContextとDbSet<TEntity>という2つの新しい型により、コードファーストによるエンティティモデルの組み込みが容易になる。

コードファースト(Code First)

コードファーストプログラミングモデルは、エンティティと関連づけしたクラスのコードを書くことによってモデルを作成する方法である。モデルは、EFによって適切なコード規則が使われている場合とFluent APIが使える場合、または、 データアノテーション属性を使った場合に発見される。データアノテーション属性を使った例は次のようになる。

public class Person {
    [Key]
    public string SSN { get; set; }
    [StringLength(512)]
    public string Name { get; set; }
    [RelatedTo(RelatedProperty=”Author”)]
    public ICollection<Book> Books { get; set; }
}

[Key]アノテーションは、エンティティのプライマリキーであることを明示するプロパティあり、[StringLength(512)]は、文字列の最大長を明示するプロパティである。EF CTP 4では、次のデータアノテーションが認められている。Key、StringLength、ConcurrencyCheck、Required、Timestamp、DataMember、RelatedTo、MaxLength、StoreGenerated。

Fluent APIは、コード規約よりも優先されるデータアノテーションよりもさらに優先される。その他のコードファーストに関する重要な更新は以下の通り。

  • CTP 4でサポートされている、モデルで認識する規約は、次の通り。プライマリキー、逆方向のリレーションシップ、外部キー、テーブル名の複数形化
  • Fluent APIのメソッドは、より直感的に洗練されている。コードファーストウォークスルーで、詳細情報が提供されている。

生産性向上

EF Feature CTP 4は、DbContextとDbSet<TEntity>という2つの新しい型を提供している。DbContextは、ObjectContextの簡易バージョンで、モデルキャッシュ、データベースプロビジョニング、接続管理、スキーマ作成の基本的な機能を提供する。以下の例を見て欲しい。

using System.Collections.Generic;

using System.Data.Entity;
namespace MyDataAccessDemo {
class Program {
static void Main(string[] args){
using (var context = new ProductContext()) {
var food = new Category { CategoryId = "FOOD" };
context.Categories.Add(food);
var cheese = new Product { Name = "Cheese" };
cheese.Category = context.Categories.Find("FOOD");
context.Products.Add(cheese);
context.SaveChanges();
}
}
}
 
public class ProductContext : DbContext {
public DbSet<Product> Products { get; set; }
public DbSet<Category> Categories { get; set; }
}

public class Product {
public int ProductId { get; set; }
public string Name { get; set; }
public Category Category { get; set; }
}
 
public class Category{
public string CategoryId { get; set; }
public string Name { get; set; }
public ICollection<Product> Products { get; set; }
}
}

このコードは、データベースにモデルをストアするために必要な基礎を含めて、彼がエンティティモデルを作成するために必要なものが書かれている、

マイクロソフトは、まだEF Feature 4 RTMがいつリリースされるかを明確にしておらず、「私たちはなるべく早くRTMできるように作業を進めています。」と言及するにとどまっている。

関連情報:ADO.NET EF CTP 4EF CTP4ウォークスルー:コードファーストコードファーストの規約Entity Frameworkの生産性向上EF CTP4ウォークスルー:生産性の向上

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT