視圖
我們使用視圖和使用數據表類似,只需將視圖從“服務器資源 管理器/數據庫資源管理器”拖動到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語句同使用數據表類似:
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]