0
嗨我有一個現有的數據庫與30個字段的表,我想將表拆分成許多模型,所以我可以檢索/保存我需要的字段,而不是每次檢索/保存整個來自db的對象。使用c#。實體框架4.1和現有的數據庫
我想我應該使用Code-First。有人可以提供一個例子或教程鏈接?
感謝,
嗨我有一個現有的數據庫與30個字段的表,我想將表拆分成許多模型,所以我可以檢索/保存我需要的字段,而不是每次檢索/保存整個來自db的對象。使用c#。實體框架4.1和現有的數據庫
我想我應該使用Code-First。有人可以提供一個例子或教程鏈接?
感謝,
你並不需要分割表能夠加載領域的子集或持續領域的子集。兩個操作都可以在整個表映射到單個實體的情況下使用。
對於選擇你只需要使用投影:
var data = from x in context.HugeEntities
select new { x.Id, x.Name };
您可以使用投影是匿名類型或任何非映射類。
對於更新,你可以簡單地使用:
var data = new HugeEntity { Id = existingId, Name = newName };
context.HugeEntities.Attach(data);
var dataEntry = context.Entry(data);
dataEntry.Property(d => d.Name).IsModified = true; // Only this property will be updated
context.SaveChanges();
或者:
var data = new HugeEntity { Id = existingId };
context.HugeEntities.Attach(data);
data.Name = newName;
context.SaveChanges(); // Now EF detected change of Name property and updated it
映射多個實體單表必須遵循非常嚴格的規則,有可能只處理表拆分爲所有實體必須與一對一關係相關(並且在代碼優先的情況下,每個拆分表有多於兩個的實體存在一些問題),或者與每個層次結構的繼承有關。我認爲你不想在這種情況下使用它們中的任何一種。