Entity Framework的Vertical Entity Splitting
Entity Framework的垂直分割至少包含二種方式,方法一是在Mapping (MSL) File修改組態,方法二是利用Fluent API設定對應關係。
方法一:
由上圖可知,組態檔在對應關係的設定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