我一直在努力在我的LINQ表達式中使用Max函數。我想從多個SQL表中選擇去年(「最大」年)的各種屬性。紅色的波浪狀告訴我說我的int?不包含Max和Enumerable.Max(我想要的函數)的定義需要接收器類型的IEnumerable < int>。我對所有這些東西都是全新的,當我搜索網絡時,我無法想出解釋我需要做什麼來解決這個問題的明確解釋。我想它是一個SQL表,它會像普通的SQL查詢那樣遍歷行。最大函數Linq查詢 - 可空的Int不是IEnumerable?
我的代碼,我已經嘗試了許多變化:
var otherPrograms = (from hm in db.HabitatManagement
join svy in db.Survey on hm.SurveyID equals svy.SurveyID
join iu in db.InventoryUsers on hm.UserID equals iu.UserID
join pt in db.ProgramType on hm.ProgramTypeID equals pt.ProgramTypeID
where pt.Program != "State Agency Public Land Programs"
&& pt.Program != "State Agency Private Land Programs"
&& svy.ReportingYear.Max()
select new
{
iu.StateID,
hm.ProgramTypeID,
pt.Program,
svy.ReportingYear
})
.Distinct()
.Select(x => new { x.StateID, x.Program, x.ProgramTypeID, x.ReportingYear, DisplayText = x.ReportingYear.ToString() + ", " + x.StateID.ToString() + ", " + x.Program.ToString() })
.OrderBy(x => x.StateID);
我也嘗試了嵌套查詢來實現同樣的事情(不知道我甚至做了右):
&& svy.ReportingYear = (from svy in db.Survey
select svy.ReportingYear.Max())
當我看着定義爲ReportingYear財產,它看起來像這樣:
public Nullable<int> ReportingYear {get; set;}
我敢肯定的問題在於它不是IEnumerable < int>所以我怎樣才能讓它成爲一個不妨礙我的SQL表?
'Nullable'是不是'Collection',它只是一個可以賦值的_value類型ed null_。對於單個值的「Max」沒有意義,所以在那裏沒有'Max()'函數。 – Sach