![](/img/trans.png)
[英]How to write a linq statement to check if a record exists then make changes to it?
[英]How to check record exists in group by subquery in linq to sql
我想通过Linq中的记录获取在一组中存在哪些记录的结果。 我已经在SQL中获得了查询,但是正努力在LINQ中获得它
在SQL查询中
select LEVEL, DESCR
from ACTIVITY_LKUP
WHERE LEVEL IN ( //Checking row exists
select TOP 2 b.LEVEL
from ACTIVITY_LKUP b
WHERE b.LEVEL > (
select max(b.LEVEL)
from ACTIVITY a, ACTIVITY_LKUP b
WHERE b.TYPE = a.ACTIVITY_TYPE
and a.JOB_CANDIDATE_ID = 1
)
group by b.level //Grouping here
)
order by LEVEL
在Linq查询
var duplicate =(from lkup in ACTIVITY_LKUP
where lkup.LEVEL== (from actlk in ACTIVITY_LKUP //Iam Not able to check row exists in the group by
where actlk.LEVEL >
(
from act in ACTIVITY
join lkup in ACTIVITY_LKUP on act.ACTIVITY_TYPE equals lkup.TYPE
where act.JOB_CANDIDATE_ID == 1
orderby lkup.LEVEL
select lkup.LEVEL
).First()
group actlk by actlk.LEVEL into lggrp
select new { LEVEL = lggrp.Key,DESCR=lggrp.Select(x=>x.DESCR)
}).Take(2)
select lkup)
显示错误行“运算符'=='不能应用于类型为'int?'的操作数 和“ System.Linq.IQueryable”。
我们如何在LINQ中做到这一点? 帮帮我。
您也可以尝试在查询中连接相等的列,例如
var duplicate=(from lg in reslandentity.ACTIVITY_LKUP
join grp in
(from actlk in reslandentity.ACTIVITY_LKUP
where actlk.LEVEL >
(
from act in reslandentity.ACTIVITY
join lkup in reslandentity.ACTIVITY_LKUP on act.ACTIVITY_TYPE equals lkup.TYPE
where act.JOB_CANDIDATE_ID == 1
orderby lkup.LEVEL
select lkup.LEVEL
).FirstOrDefault()
orderby actlk.LEVEL
group actlk by actlk.LEVEL into lggrp
select new { LEVEL = lggrp.Key }).Take(2)
on lg.LEVEL equals grp.LEVEL
select lg).ToList();
希望对您有帮助。
我认为您需要在查询中放入字段类型。 您可以尝试使用此查询。
var duplicate= from myRow in dt.AsEnumerable()
where myRow.Field<DateTime>("Con_Date").Date <= StartDate && myRow.Field<DateTime>("Con_Date").Date >= EndDate
select myRow;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.