我正在使用一個OMS,每個記錄最多可存儲三個項目數據庫中的數據。LINQ正常化數據
以下是包含五個訂單項的訂單示例。
Order Header
Order Detail
Prod 1
Prod 2
Prod 3
Order Detail
Prod 4
Prod 5
單訂單標題記錄和兩個明細記錄。
我的目標是對於詳細記錄(即每個訂單項的一個明細記錄)具有一對一的關係。在過去,我使用了一條UNION ALL
SQL語句來提取數據。使用LINQ有沒有更好的方法解決這個問題?
下面是我第一次嘗試使用LINQ。任何反饋意見,建議或建議將非常感激。對於我讀過的內容,UNION
聲明可以對流程徵稅?
var orderdetail =
(from o in context.ORDERSUBHEADs
select new {
edpNo = o.EDPNOS_001, price = o.EXTPRICES_001,
qty = o.ITEMQTYS_001 }
).Union(from o in context.ORDERSUBHEADs
select new { edpNo = o.EDPNOS_002, price = o.EXTPRICES_002,
qty = o.ITEMQTYS_002 }
).Union(from o in context.ORDERSUBHEADs
select new { edpNo = o.EDPNOS_003, price = o.EXTPRICES_003,
qty = o.ITEMQTYS_003 });
「E ..._ 00n」名稱是否以該形式修復?如果少於三個,會發生什麼? 'null'值? – tzaman 2010-05-10 18:33:24
是的,表格列用_00n固定。模式已從支持數據類型的HPe3000 IMAGE數據庫遷移爲陣列。項目級別的細節存儲在數組中。如果只有一個訂單項,則其他兩個值的項目ID將爲零。這同樣適用於價格和數量。沒有機會產生空值。這些列的默認值爲零或空格。所有這一切背後的原因是爲了節省空間。設計師採用訂單中最常見的訂單項數量並創建訂單明細模式。 謝謝, Brennan – 2010-05-10 19:41:51