现在的位置: 首页 > 综合 > 正文

LinQ to SQL 之 Lambda表达式

2012年12月08日 ⁄ 综合 ⁄ 共 849字 ⁄ 字号 评论关闭

这两天因为做项目用到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>这个东西了!

【上篇】
【下篇】

抱歉!评论已关闭.