2017-06-22 52 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();