2016-04-18 41 views
1

我們使用EF來配置使用FluentAPI。我們的目標是創建一個國際化結構,允許創建包含多個成語的項目名稱和描述的表格。如何從流利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)); 
} 

在這段代碼中,你有實體City ,並且BuildLocalizedTable()函數應該從父實體讀取表名和主鍵定義,並以任何其他方式聲明具有City的名稱的依賴實體,屬性和導航。

經過大量的研究,我找不到任何樣本來讀取實體定義,而不是寫作。這可能嗎?

回答

0

當您使用EF Code-First方法時,Fluent API可用。
Code-First將根據您的實體類和配置即時創建數據庫。
要進行配置,我們可以使用DataAnnotations或Fluent API,但最後一個提供更多功能。

無法使用Fluent API讀取實體定義,因爲它只是用於配置新的實體。我們使用Code-First,因此我們沒有關於數據庫的任何信息,因爲我們首先通過編寫類開始,然後Code First API將創建新數據庫

相關問題