2017-09-22 6 views
-1

が、私はこのここでLINQクエリを持って表現し、そのは照会本体は、ラムダ式を使用して

照会本体がで終わらなければなりませんエラーを投げますselect句またはグループの句ここ

は質問

var query = from county in HWC.StateCounties.Where(w => w.StateID == id).Select(s => new CountyList 
    { 
     CountyID = s.StateCountyID, 
     CountyName = s.CountyName 
    }); 

私も最後に.Tolist()を追加しようとしたと同じエラーを得たの問合せです。

私は明らかにselect句があると、これはなぜ起こりますか?それはLINQのと拡張の方法を組み合わせることが可能であるが、

答えて

1

私は私のクエリでミスを犯し、クエリはこの代わりに

var query = HWC.StateCounties.Where(w => w.StateID == id).Select(s => new 
     { 
      s.StateCountyID, 
      s.CountyName 
     }); 
+0

、これは同じエラーメッセージを生成していますか? – SlimsGhost

+0

@SlimsGhost、これにエラーはありません – Chris

1

する必要があり、LINQクエリは、常にC#でselectで終了する必要があります(VBでこれは必要ではありません)。 多分それは味の問題ですが、Linqを拡張メソッドよりも好む理由は、すべての中カッコが削除されているため、コードをはるかに読みやすくしているからです。

クエリは次のようになります結合したい場合はあなたのクエリが

var query = 
    from county in HWC.StateCounties 
    where county.stateID == id 
    select new 
    { 
     county.StateCountyID, 
     county.CountyName, 
    }; 

次のようになります。

var query = 
    from county in HWC.StateCounties.Where(s => s.stateID == id) 
    select new 
    { 
     county.StateCountyID, 
     county.CountyName, 
    }; 
+0

私はLinqを拡張メソッドよりも使いたいです。しかし、両方で書くことができるのは常に良いことです。いつ他のプロジェクトを好むプロジェクトを実行するかはわかりません – Chris

関連する問題