如何用lambda表达式改写LinQ语句?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用lambda表达式改写LinQ语句?相关的知识,希望对你有一定的参考价值。

我现在写的LinQ的语句是
private void InitPage()

RiverEarthEntities db = new RiverEarthEntities();
var q = from ee in db.EarthquakeEvents
join r in db.ReportDataMains on
ee.EE_ID equals r.RDM_EEID
select new

EE_NAME = ee.EE_NAME,
RDM_FACTYPE = r.RDM_FACTYPE,
RDM_FACNO = r.RDM_FACNO,
RDM_UDATE = r.RDM_UDATE
;
Repeater1.DataSource = q;
Repeater1.DataBind();

现在要换成纯的lambda表达式(因为我写的和别人的风格不一致),该如何写呢?
求教育。

var q=db.EarthquakeEvents.Join( //join方法,是以指定键相等的方式,加载出一个关联查询数据集
db.ReportDataMains, //第一个参数,表示要关联的数据集
i=>i.EE_ID, //第二个参数,是个Expression类,表示主数据集进行关联的实体键
j=>j.RDM_EEID, //第三个参数,是个Expression类,表示关联数据集进行关联的实体键
(i,j)=> //第四个参数,是个Expression类,接受的委托有两个参数,就是两个数据集了,在委托内部new一个匿名对象即可

I.EE_NAME,
J.RDM_FACTYPE

);
参考技术A var q = db.EarthquakeEvents.join(db.ReportDataMains, ee => ee.EE_ID equals, r => r.RDM_EEID,new

EE_NAME = ee.EE_NAME,
RDM_FACTYPE = r.RDM_FACTYPE,
RDM_FACNO = r.RDM_FACNO,
RDM_UDATE = r.RDM_UDATE
)
手写的,你自己试试,很容易的
参考技术B 建议 先看看匿名代理 和扩展方法 要不然你就是会写 也不知道为什么这样写

点标记(lambda表达式+linq查询标记符)与linq语句(查询表达式)

什么是Linq表达式?什么是Lambda表达式?

技术图片

技术图片

参照:https://www.cnblogs.com/zhaopei/p/5746414.html

以上是关于如何用lambda表达式改写LinQ语句?的主要内容,如果未能解决你的问题,请参考以下文章

如何为 sql 编写 lambda (linq) 表达式?

如何为CriteriaOperator过滤对象转换为lambda表达式,即:linq to xpo的动态where语句

什么是Linq表达式?什么是Lambda表达式?

点标记(lambda表达式+linq查询标记符)与linq语句(查询表达式)

带有语句体的 lambda 表达式无法转换为 nopCommerce 中的表达式树 [重复]

sql语句-linq语言-lambda表达式对照