首頁 關於聖擎 技術支援 服務項目 連絡我們  
 

產品規格

 

產品資訊

ORM 的關聯處理功能

ORM Framewok可以處理各類型的關聯,不論是一對多、多對一、多對多、單鍵關聯、多鍵關聯、…,ORM Framework Builder 都能夠產生出對應的 ORM Framework。

一對多 (one to many)

以 Microsoft SQL Server 上的 Northwind 資料庫為例,Customers 資料表中的每個客戶都可以在 Orders 資料表中對應出 0 ~ n 筆的訂單,如下圖:

在 ORM Framework 中就會內建一對多的關聯處理,例如:

Dim peter As New Customer(“CustomerID=’ALFKI’”)
For Each o As Order In peter.Orders
       MessageBox.Show(o.OrderDate.ToString())
Next

您可以輕鬆使用 Customer 物件的 Orders 屬性來取得該客戶對應的所有訂單資料,當然,也可以再透過 Order 物件的 Order_Details 屬性取得訂單明細資料,例如要取得上述客戶的第3筆訂單中的第 2 筆訂單明細的單價:

       peter.Orders(2).Order_Details(1).UnitPrice

多對一 (many to one)

多對一關聯與上述的一對多關聯正好是相反的方式,以 Microsoft SQL Server 上的 Northwind 資料庫為例,Products 資料表中的每個產品都可以在 Order Details 資料表中對應出 0 ~ n 筆的訂單明細, Products 對 Order Details 就是一對多的關聯,反過來,Order Details 對 Products 就是多對一的關聯,如下圖:

如同之前所說明,您可以透過 ORM Framework 中內建的一對多關聯功能進行明細查詢,例如想要知道某一產品在那些訂單明細中有:

Dim p As New Product(“ProductID=53”)
For Each od As Order_Detail In p.OrderDetails
       MessageBox.Show(od.Quantity.ToString())
Next

反過來,如果想知道某一訂單明細是訂購那一個產品,就可以使用 ORM Framework 中內建的多對一關聯功能進行明細查詢,例如要取得某一訂單明細 od 所訂購的產品名稱:

       od.Product.ProductName

多對多 (many to many)

綜合以上一對多、多對一的關聯方式,我們可以處理對多對的關聯狀況,例如某一個客戶可以訂購多個產品,某一個產品也可以被多個客戶訂購,以 Microsoft SQL Server 上的 Northwind 資料庫為例:

可以直接透過 ORM Framework 中內建的對多關聯功能進行資料瀏覽:

Dim peter As New Customer(“CustomerID=’ALFKI’”)
For Each o As Order In peter.Orders
       For Each od As Order_Detail In o.Order_Details
               MessageBox.Show(od.Product.ProductName)
       Next
Next

本網站版權屬「聖擎科技股份有限公司」所有,請勿任意轉載