2016-04-18 13 views
1

FluentAPIを使用した設定でEFを使用しています。私たちの目標は、複数のイディオムで項目の名前と説明を含む表を作成できる国際化構造を作成することです。Fluent APIからエンティティテーブル名と主キー定義を読み取る方法

しかし、プログラマに、それは簡単な作りのために、アイデアは、このサンプルによると、エンティティ定義と国際されている属性を受信するためのいくつかの関数を作成します

public static new void CreateModel(DbModelBuilder modelBuilder) 
{ 
    modelBuilder.Entity<City>().ToTable("Cities", "Common"); 
    modelBuilder.Entity<City>().Property(p => p.Acronym).HasMaxLength(20); 
    modelBuilder.Entity<City>().Property(p => p.Acronym).IsOptional(); 
    modelBuilder.Entity<City>().Property(p => p.Name).IsRequired(); 
    modelBuilder.Entity<City>().HasRequired(c => c.State).WithMany(c => c.Cities).HasForeignKey(c => c.StateId); 

    BuildLocalizedTable(modelBuilder, modelBuilder.Entity<City>, modelBuilder.Entity<City>().Property(p => p.Name)); 
} 

このコードでは、実体を持っているCityBuildLocalizedTable()関数は、親エンティティからテーブル名と主キー定義を読み込み、他のイディオムの中にCityの名前を持つために依存エンティティ、プロパティ、およびナビゲーションを宣言する必要があります。

多くの研究の後、私はエンティティ定義を読み込むためのサンプルを書くのではなく、見つけることができませんでした。これは可能でしょうか?

答えて

0

Fluent APIは、EFコードファーストアプローチを使用する場合に利用できます。
Code-Firstはエンティティのクラスと設定に基づいてオンザフライでデータベースを作成します。
設定には、DataAnnotationsまたはFluent APIを使用できますが、最後のものはより多くの機能を提供します。

Fluent APIを使用してエンティティ定義を読み取る方法はありません。新しいエンティティをコンフィグレーションするためだけです。 Code-Firstを使用するので、まずクラスを記述することでデータベースを作成し、次にCode First APIで新しいデータベースを作成するので、データベースに関する情報はありません

関連する問題