LINQ 查詢練習
這是一個多對多關聯的資料表下,建立 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); ...