创新互联--领先互联网品牌服务商,十年专业互联网软件开发。
网上订单    付款方式   
钟祥创新互联业务电话
 
  客户服务中心
客户服务: 
客户服务: 
技术支持: 
 
  成功案例

 
  您当前的位置 > 技术文档 > 显示正文
LinQ to SQL 之 Lambda表达式
作者:创新互联   发布时间:2015/11/2 15:28:49   阅读次数:3866

这两天因为做项目用到LinQ to SQL 的 Lambda表达式,在调试的时候顺便总结了下用法:

GroupBy 有 AS 无 点 有 it
OrderBy 无 AS 无 点 有 it
Select  无 AS 无 点 无 it(单一)
Select  有 AS 无 点 有 it(Sum)

例子是:

string groupBy="it.Date AS Date, it.Product.Name AS ProductName";(AS后面的名称不能有“.”)

string orderBy="it.Date,it.ProductName";(此处没有AS,用到的名称全部是groupBy的AS后的名称,但是带有it)

string select="Date,ProductName,SUM(it.Money) AS Money";(在select中除了SUM以外的字段全都没有it,SUM后一定要有AS,AS后的字段名也不能有“.”)

 ObjectQuery<DbDataRecord> query = context.Entity.Where(where).GroupBy(groupBy, select).OrderBy(eorderBy)

PS:好像OrderBy要放在GroupBy之后

 

还有就是,context后面跟的Entity必须是表名,但是如果想不在这里定死表名,由传入参数来决定,可以使用以下的定义方法:

ObjectQuery<TEntity> query = context.CreateQuery<TEntity>(collectionName);
 IQueryable<TEntity> source = query.AsQueryable();
source = source.Where(condition.Expression).OrderBy(orderBy);

但是此处至少要指明TEntity的接口,其他类可继承此接口,就可以了。

 

但是如果连接口都不想指定,那么就等Visual Studio 2010 吧!听说.NetFramework 4.0 就不需要<TEntity>这个东西了!


二十四小时专线:13377997520 13310503958
Copyright 2007-2023 0724Cx.Cn All Right Reserved  鄂ICP备15019628号