科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件另一种方式使用LINQ

另一种方式使用LINQ

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

我曾经在ScottGu的博客上读过他的部分文章,是关于在ASP.NET中LinqDatasource数据源如何使用LINQ to SQL的。文章浅显易懂,想必Scott为此花了不少的心思,如果你之前没有读过他的一些文章那么你最好花点时间去读一读,这会对你非常有好处的。

作者: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领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章