成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Linq表值函數(shù)詳細(xì)分析

開發(fā) 后端
這里介紹Linq表值函數(shù)返回單個(gè)行集(與存儲(chǔ)過程不同,存儲(chǔ)過程可返回多個(gè)結(jié)果形狀)。由于Linq表值函數(shù)的返回類型為 Table,因此在 SQL 中可以使用表的任何地方均可以使用Linq表值函數(shù)。

Linq有很多值得學(xué)習(xí)的地方,這里我們主要介紹Linq表值函數(shù),包括介紹修改一下Discontinued屬性為可空的bool類型等方面。

使用用戶定義的Linq表值函數(shù)

Linq表值函數(shù)返回單個(gè)行集(與存儲(chǔ)過程不同,存儲(chǔ)過程可返回多個(gè)結(jié)果形狀)。由于Linq表值函數(shù)的返回類型為 Table,因此在 SQL 中可以使用表的任何地方均可以使用Linq表值函數(shù)。此外,您還可以完全像處理表那樣來處理Linq表值函數(shù)。

下面的 SQL 用戶定義函數(shù)顯式聲明其返回一個(gè) TABLE。因此,隱式定義了所返回的行集結(jié)構(gòu)。

  1. ALTER FUNCTION [dbo].[ProductsUnderThisUnitPrice]  
  2. (@price Money  
  3. )  
  4. RETURNS TABLE  
  5. AS  
  6. RETURN  
  7. SELECT *  
  8. FROM Products as P  
  9. Where p.UnitPrice < @price 

拖到設(shè)計(jì)器中,LINQ to SQL 按如下方式映射此函數(shù):

  1. IsComposable=true)]  
  2. public IQueryable<ProductsUnderThisUnitPriceResult>   
  3. ProductsUnderThisUnitPrice([Parameter(DbType="Money")]  
  4. System.Nullable<decimal> price)  
  5. {  
  6. return this.CreateMethodCallQuery  
  7. <ProductsUnderThisUnitPriceResult>(this,  
  8. ((MethodInfo)(MethodInfo.GetCurrentMethod())), price);  

這時(shí)我們小小的修改一下Discontinued屬性為可空的bool類型。

  1. private System.Nullable<bool> _Discontinued;  
  2. public System.Nullable<bool> Discontinued  
  3. {  

我們可以這樣調(diào)用使用了:

  1. var q = from p in db.ProductsUnderThisUnitPrice(10.25M)  
  2. where !(p.Discontinued ?? false)  
  3. select p; 

其生成SQL語句如下:

  1. SELECT [t0].[ProductID], [t0].[ProductName], [t0].[SupplierID],   
  2. [t0].[CategoryID], [t0].[QuantityPerUnit], [t0].[UnitPrice],   
  3. [t0].[UnitsInStock], [t0].[UnitsOnOrder], [t0].[ReorderLevel],  
  4. [t0].[Discontinued]  
  5. FROM [dbo].[ProductsUnderThisUnitPrice](@p0) AS [t0]  
  6. WHERE NOT ((COALESCE([t0].[Discontinued],@p1)) = 1)  
  7. -- @p0: Input Money (Size = 0Prec = 19Scale = 4) [10.25]  
  8. -- @p1: Input Int (Size = 0Prec = 0Scale = 0) [0] 

以聯(lián)接方式使用用戶定義的Linq表值函數(shù)

我們利用上面的ProductsUnderThisUnitPrice用戶定義函數(shù),在 LINQ to SQL 中,調(diào)用如下:

  1. var q =  
  2. from c in db.Categories  
  3. join p in db.ProductsUnderThisUnitPrice(8.50M) on  
  4. c.CategoryID equals p.CategoryID into prods  
  5. from p in prods  
  6. select new  
  7. {  
  8. c.CategoryID,  
  9. c.CategoryName,  
  10. p.ProductName,  
  11. p.UnitPrice  
  12. }; 

其生成的 SQL 代碼說明對(duì)此函數(shù)返回的表執(zhí)行聯(lián)接。

  1. SELECT [t0].[CategoryID], [t0].[CategoryName],   
  2. [t1].[ProductName], [t1].[UnitPrice]  
  3. FROM [dbo].[Categories] AS [t0]  
  4. CROSS JOIN [dbo].[ProductsUnderThisUnitPrice](@p0) AS [t1]  
  5. WHERE ([t0].[CategoryID]) = [t1].[CategoryID]  
  6. -- @p0: Input Money (Size = 0Prec = 19Scale = 4) [8.50] 

【編輯推薦】

  1. Linq結(jié)果集形狀概述
  2. Linq存儲(chǔ)過程返回詳解
  3. Linq調(diào)用LoadProducts方法
  4. Linq使用數(shù)據(jù)表簡(jiǎn)單描述
  5. Linq對(duì)象引用簡(jiǎn)單介紹
責(zé)任編輯:佚名 來源: IT168
相關(guān)推薦

2009-09-09 09:48:43

Linq延遲加載

2009-09-14 16:21:34

LINQ To XML

2009-09-14 13:50:35

LINQ編程模型

2009-09-08 15:56:50

Linq使用Group

2009-09-25 14:23:39

2009-09-28 10:39:01

Hibernate基礎(chǔ)

2009-11-03 10:09:33

Oracle表空間

2009-06-18 14:00:51

2009-10-10 13:52:57

VB Update方法

2010-01-06 13:50:37

.NET Framew

2009-11-20 13:11:44

Oracle XML數(shù)

2009-12-16 14:09:14

Visual Stud

2009-09-03 17:57:06

C#聲明事件

2009-09-04 15:43:07

C#流模型

2009-03-24 08:30:54

AndroidGoogle移動(dòng)os

2010-04-26 18:17:19

Oracle存儲(chǔ)過程

2009-12-07 15:37:00

WCF控件

2009-09-07 13:19:44

C#線程同步

2011-09-24 12:34:03

2009-12-03 17:41:40

PHP應(yīng)用發(fā)展
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 国产精品一区一区 | 国产999精品久久久久久 | 男女羞羞视频大全 | 中文字幕一区二区不卡 | 亚洲 精品 综合 精品 自拍 | 91av久久久 | av三级| 久久精品欧美一区二区三区麻豆 | 亚洲综合无码一区二区 | 日本免费黄色一级片 | 精品久久久精品 | a级片在线观看 | 拍拍无遮挡人做人爱视频免费观看 | 成人深夜福利 | 国产高清性xxxxxxxx | 81精品国产乱码久久久久久 | 黄色国产 | 欧日韩不卡在线视频 | 天天爽夜夜骑 | 日韩av在线一区二区三区 | 亚洲国产精品久久久久 | 7777在线| 91视频国产区 | 国产98在线 | 免费, | 亚洲视频在线一区 | 久久久久国产精品一区三寸 | 亚洲午夜一区二区 | 中文字幕 国产 | 欧美成年黄网站色视频 | 久久婷婷国产香蕉 | 日韩成人影院在线观看 | 日本二区在线观看 | 亚洲喷水 | h视频在线观看免费 | 国产大毛片 | 在线免费黄色小视频 | 久色视频在线 | 国产精品美女在线观看 | 日韩视频一区二区三区 | 日韩精品久久一区二区三区 | 亚洲精品99久久久久久 |