2017-06-22 77 views
-8

H1可以任何一个帮助如何在LINQ的C#转换SQL查询的LINQ C#

select YearValue from [Information].Year 
where YearId in (select max(YearId) from curreny where BudgetCodeId = 2) 

这里写这篇文章下面的查询是我已经试过:

var maxYear = 
    from year in dbContext.Years 
    join exchange in dbContext.CurrencyExchangeRates 
    on year.YearId equals exchange.YearId 
    where exchange.BudgetCodeId == budgetCodeId 
    orderby year.YearValue descending 
    select new { yearValue = year.YearValue }; 
+3

你到目前为止尝试过什么? SO不是代码写入服务。 – Rob

+0

我试过这样,但没有得到想要的输出。 VAR maxYear =从今年dbContext.Years 在year.YearId dbContext.CurrencyExchangeRates加入交换等于exchange.YearId 其中exchange.BudgetCodeId == budgetCodeId排序依据year.YearValue降 选择新 { yearValue = year.YearValue } ; –

+0

这看起来不像你之后的SQL。什么是“CurrencyExchangeRates”?你为什么按年份价格订购? – Rob

回答

0

这就是你”寻找:

var maxYear = from year in dbContext.Years where (from exchange in dbContext.CurrencyExchangeRates where exchange.BudgetCodeId == 2 select exchange) 
    .Max(m => m.YearId) == 
     year.YearId select year.YearValue; 

int mYear = maxYear.First();