視圖

我們使用視圖和使用數據表類似,只需將視圖從“服務器資源管理器/數據庫資源管理器”拖動到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]
arrow
arrow
    文章標籤
    LINQ LINQ to SQL
    全站熱搜

    Jimmy 發表在 痞客邦 留言(0) 人氣()