Posts

Showing posts from February, 2015

LINQ 查詢練習

Image
這是一個多對多關聯的資料表下,建立 Entity Framework 後採用 LINQ 查詢資料的範例。

資料關聯說明建立 品料(MATERIAL) 與 形狀(MSHAPE) 兩個獨立資料表,單一種品料具有多種形狀的屬性,不同品料可對應相同的形狀。在 PowerDesigner CDM 中設計兩個 Entity 並設定為多對多關聯,如下圖:產生 PDM 後會發現有三個資料表,如下圖:將資料結構與資料匯入資料庫中 (SQL Script)使用 Entity Framework 從資料庫建立模型,會發現與 CDM 的圖形類似基本 LINQ 查詢兩個基本 LINQ 的查詢練習:針對單一品料,列出其已選取的形狀有幾種 ?針對單一品料,列出其尚未選取的形狀有幾種 ?參考作法 連結其中 ProxyCreationEnabled 屬性會影響第一個查詢是否要下 Include("MSHAPE") 的指令public List GetShapesWithLazyLoading(int materialId)
{
db.Configuration.ProxyCreationEnabled = true;

var collection = db.MATERIAL.Find(materialId).MSHAPE;
return new List(collection);
}

public List GetShapesWithoutLazyLoading(int materialId)
{
db.Configuration.ProxyCreationEnabled = false;

var collection = db.MATERIAL.Include("MSHAPE")
.FirstOrDefault(r=>r.ID==materialId).MSHAPE;

return new List(collection);
}
完整範例下載相關連結ProxyCreationEnabled=false 測試 / Kim