遇到问题,我希望上次导入的数据显示失败。我结束诉诸HQL,因为我不得不执行两个查询任何人都可以看到为什么这不起作用(正确)在Linq到NHibernate,它是3.1中的已知错误?Get Max row(Linq,NHibernate)
我会写的SQL。
select JobImport.* from
JobImportResult
inner join (
select Max(JobImportResultId) as JobImportResultId
from JobImportResult
group by JobImportId
)as tbl on tbl.JobImportResultId = JobImportResult.JobImportResultId
inner join JobImport on JobImport.JobImportId = JobImportResult.JobImportId
where ImportFailureReasonId is not null
HQL我结束了写作。
select jir.JobImport from JobImportResult jir where jir.Id in
(select max(mjir.Id) from JobImportResult mjir group by mjir.JobImport)
and jir.ImportFailureReason is not null
LINQ的的作品(但我认为2000年后行将打破)
var innerQuery = Query<JobImportResult>()
.GroupBy(jir=>jir.JobImport)
.Select(jir=>jir.Max(jr=>jr.Id));
var innerQueryListed = innerQuery.ToList();
var resultQuery = Query<JobImportResult>()
.Where(jir => innerQueryListed.Contains(jir.Id) && jir.ImportFailureReason != null)
.Select(jir => jir.JobImport);
LINQ的不工作:(
var innerQuery = Query<JobImportResult>()
.GroupBy(jir=>jir.JobImport)
.Select(jir=>jir.Max(jr=>jr.Id));
var resultQuery = Query<JobImportResult>()
.Where(jir => innerQuery.Contains(jir.Id) && jir.ImportFailureReason != null)
.Select(jir => jir.JobImport);
当你说它在2000行后中断时,错误是什么? – mattytommo 2012-04-11 07:45:20
FYI http://stackoverflow.com/questions/656167/hitting-the-2100-parameter-limit-sql-server-when-using-contains – Mark 2012-04-11 10:43:34
啊我不知道,我知道包含的是DEVIL上性能虽然嘿嘿:) – mattytommo 2012-04-11 10:49:01