Entity Framework的Vertical Entity Splitting

  • 4150
  • 0

Entity Framework的Vertical Entity Splitting

Entity Framework的垂直分割至少包含二種方式,方法一是在Mapping (MSL) File修改組態,方法二是利用Fluent API設定對應關係。

方法一:

MappingFile

由上圖可知,組態檔在對應關係的設定CCategories1中,將同一個資料實體的不同欄位分別對應至SCategories1與SCategoriesDate1,代表將同一個資料實體的不同欄位對應至不同的資料表,但是SCategories1與SCategoriesDate1有相同的Id。(以利在Store端合併資料表)

 

方法二:


    .Map(m => 
    { 
        m.Properties(t => new { t.DepartmentID, t.Name }); 
        m.ToTable("Department"); 
    }) 
    .Map(m => 
    { 
        m.Properties(t => new { t.DepartmentID, t.Administrator, t.StartDate, t.Budget }); 
        m.ToTable("DepartmentDetails"); 
    });

前述程式碼將資料實體Department的不同欄位分別對應到資料表Department與資料表DepartmentDetails。

 

參考資料來源:

[1]Entity Framework Supported Mapping Scenarios
http://download.microsoft.com/download/b/3/3/b333d63e-0df2-4d43-978a-1ce9d2f39801/EntityFrameworkMappingWhitepaper.pdf

[2]Mapping Properties of an Entity Type to Multiple Tables in the Database (Entity Splitting)
http://msdn.microsoft.com/en-us/data/jj591617.aspx#2.7