扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:builder.com.cn 来源:来源网站 2007年11月25日
关键字: LINQ
我曾经在ScottGu的博客上读过他的部分文章,是关于在ASP.NET中LinqDatasource数据源如何使用LINQ to SQL的。文章浅显易懂,想必Scott为此花了不少的心思,如果你之前没有读过他的一些文章那么你最好花点时间去读一读,这会对你非常有好处的。而且他在例子中分别使用了VB和C#代码。下面我要着重介绍的一个例子是关于使用Lambda表达式得到每样产品的总价:
Dim products = From p In db.Products _
Where p.Category.CategoryName.StartsWith("C") _
Select p.ProductID, _
p.ProductName, _
p.UnitPrice, _
NumOrders = p.Order_Details.Count, _
Revenue = p.Order_Details.Sum(Function(details) _
details.UnitPrice * details.Quantity)
在这里,我们所使用的lambda用关键字”Function”来标识,它被用在了这个叫”Sum”的扩展方法里,其目的是完成对每样产品总价的计算。在VB 9里面我们也可以使用"Aggregate"来完成同样的功能。
另外,我们可以在Where子句中使用”Like”,这种用法和上面的作用是相同的:
Dim products = From p In db.Products _
Where p.Category.CategoryName Like "C*" _
Select p.ProductID, _
p.ProductName, _
p.UnitPrice, _
NumOrders = p.Order_Details.Count, _
Revenue = _
Aggregate detail In p.Order_Details _
Into Sum(detail.UnitPrice * detail.Quantity)
VB 9 提供了很多其他的比较通用的LINQ表达式,这样你就省去了手动再写一遍的时间,例如求和Sum, 取最小值Min, 最大值Max, 取平均Average等等。
我个人比较喜欢那些容易理解的VB 表达式句法,因此我更倾向于使用这些已有的。
如果你希望了解更多的有关Query的信息,我们为你准备了一些视频
希望大家能够从中发现乐趣!
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者