2011-08-16 7 views
2

私はこのコードを使用しています:このLINQ機能はどのように修正できますか?

  var nextLevel = (from p in cd.Objective 
          where p.Parent_ObjectiveID == null 
          select p.Level); 

そして、それは動作しますが、(私は私のデータベース内の任意の要素を持っていないので)それが要素を返さない瞬間で。

  var nextLevel = (from p in cd.Objective 
          where p.Parent_ObjectiveID == null 
          select p.Level).Max(); 

しかし、私はエラーを取得::私はこれをやってトップレベルを知りたいのですが

ヌル値がnull非許容されるタイプの可能System.Int32を持つメンバーに割り当てることはできません値の型。

Parent_ObjectiveIDは、nullのみのintで、レベルはintのみです。

答えて

4

これはp.Levelの型であり、クエリに項目がないため、強制的にnullを返すため、Maxはintを返すようにしています。 p.Levelをnull可能なintにキャストすると、クエリが機能するはずです。

var nextLevel = (from p in cd.Objective 
       where p.Parent_ObjectiveID == null 
       select (int?)p.Level).Max(); 
+0

正確には、動作します。ありがとうJacob –

+0

良い取引。お力になれて、嬉しいです。 :) –

関連する問題