LINQ to SQL 透過 O/R 設計器支援視圖操作:直接將視圖從「伺服器總管/資料庫總管」拖曳至設計介面,即可自動產生對應的實體類。值得注意的是,O/R 設計器僅支援一對一映射,即一個實體類只能對應單一資料表或視圖;若需跨表查詢,可將實體類映射至已聯結多張相關表的視圖。
本文採用 Northwind 資料庫自帶的 Invoices 與 Quarterly Orders 兩個視圖示範查寫作。
查詢出貨城市為 London 的發票資料:
var q = from i in db.Invoices
where i.ShipCity == "London"
select new {
i.OrderID,
i.ProductName,
i.Quantity,
i.CustomerName
};
生成 SQL:
SELECT [t0].[OrderID], [t0].[ProductName], [t0].[Quantity], [t0].[CustomerName]
FROM [dbo].[Invoices] AS [t0]
WHERE [t0].[ShipCity] = @p0
-- @p0: Input NVarChar (Size = 6) [London]
查詢每季訂單視圖的所有資料:
var q = from qo in db.Quarterly_Orders select qo;
生成 SQL:
SELECT [t0].[CustomerID], [t0].[CompanyName], [t0].[City], [t0].[Country]
FROM [dbo].[Quarterly Orders] AS [t0]