2012-05-03 10 views
0

に参加するには、私は、最新の年間取得したいr.RenewalYearがあるので、私は最大(とLINQ)と

   var renewalQuery = from r in crnnsupContext.Renewals 
           group r by r.RenewalYear into g 
           from w in crnnsupContext.WorkPlaces 
           join p in crnnsupContext.ProvStates on p.ProvinceStateID equals r.EmployerProvState 
           where r.RegNumber == _username && r.PlaceOfWork == w.WorkID 
           select g.max(r.RenewalYear); 

のようなものを試してみました明らかにそれは動作しません、誰もこれの正しい文法を知っていますか?おかげで非常に多くの

+0

あなたはあなたに戻ってくるだけで、最新のRenewalYearを取得するために探している、または最新の年は暦年で決定されます? – tmesser

答えて

0

はあなたの年を選択し、その上で最大を()を使用します

var renewalQuery = (from r in crnnsupContext.Renewals 
           group r by r.RenewalYear into g 
           from w in crnnsupContext.WorkPlaces 
           join p in crnnsupContext.ProvStates on p.ProvinceStateID equals r.EmployerProvState 
           where r.RegNumber == _username && r.PlaceOfWork == w.WorkID 
           select r.RenewalYear).Max(); 
+0

「名前 'p'はスコープ内のequalsの左側にありません」というエラーがあります。これ以外にもRenewalYearを取得するだけですか?私は実際に最新のRenewalYearのレコードを全部手に入れたいと思っています – pita

+2

@pita、私はあなたの質問がうまくいっていると思っており、最大年が必要です – Habib

+0

@pita - それはあなたが参加しているものなので左側の範囲にはありませんそれは右辺に属しています: 'wから... workPlacesがpに参加する... r.EmployerProvStateのProveStatesはp.ProvinceStateID'と等しくなります –