Linq使用數據表簡單描述
在向大家詳細介紹生成的SQL語句之前,首先讓大家了解下Linq使用數據表,然后全面介紹生成的SQL語句。
Linq使用數據表,只需將視圖從“服務器資源管理器/數據庫資源管理器”拖動到O/R 設計器上,自動可以創建基于這些視圖的實體類。我們可以同操作數據表一樣來操作視圖了。這里注意:O/R 設計器是一個簡單的對象關系映射器,因為它僅支持 1:1 映射關系。換句話說,實體類與數據庫表或視圖之間只能具有 1:1 映射關系。不支持復雜映射(例如,將一個實體類映射到多個表)。但是,可以將一個實體類映射到一個聯接多個相關表的視圖。下面使用NORTHWND數據庫中自帶的Invoices、Quarterly Orders兩個視圖為例,寫出兩個范例。
我們使用下面代碼來查詢出ShipCity 在London的發票。
- var q =
- from i in db.Invoices
- where i.ShipCity == "London"
- select new
- {
- i.OrderID,
- i.ProductName,
- i.Quantity,
- i.CustomerName
- };
這里,生成的SQL語句同Linq使用數據表類似:
- SELECT [t0].[OrderID], [t0].[ProductName], [t0].[Quantity],
- [t0].[CustomerName] FROM [dbo].[Invoices] AS [t0]
- WHERE [t0].[ShipCity] = @p0
- -- @p0: Input NVarChar (Size = 6; Prec = 0; Scale = 0) [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]
【編輯推薦】