Entity Framework Feature CTP 4は、Code Firstプログラミングモデルを更新し、生産性を向上

3123 ワード

最近、Entity Framework Feature CTP 4が発表され、Code Firstプログラミングモデルが更新され、新しい符号化規則とデータ注釈が追加された.また、DbContextとDbSetの2つのタイプが追加され、Code Firstを使用してエンティティモデルの作成を簡素化することができる.
Code First
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の優先度はデータ注釈よりも高く、データ注釈の優先度はコード約定よりも高い.その他の重要なCode Firstの更新は次のとおりです.
  • CTP 4でサポートされているモデルプローブの約束は、プライマリ・キー、リレーションシップの反転、外部キー、および多様なテーブル名
  • である.
  • Fluent APIメソッドを精密化し、より直感的である.Code First Walkthroughには、より詳細な情報
  • が含まれています.
    生産性の向上
    EF CTP 4には、DbContextとDbSetの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 4 RTMの発表時期を明らかにしていないが、「RTMの早期発表を期すために努力している」と話している.
    関連情報:ADO.NET EF CTP 4、EF CTP4 Walkthrough:Code First、Conventions for Code First、Productivity Improvements for the Entity Framework、EF CTP4 Walkthrough:Productivity Improvements.
    EF CTP 4 Brings Code First Updates and Productivity Improvements