2017-08-08 10 views
-3

このメソッドを使用して、データベースに保管が既に存在するかどうかに基づいてブール値を返そうとしています。Entity Frameworkを使用してデータベースから結果を返します

var custody = db.Custodies.LastOrDefault(c => c.studentId == id); 
if (db.Custodies.Contains(custody) && custody.custodyEndTime == null) 
{ 
    return true; 
} 
    return false; 
} 

Custodiesの表は、複合主キーを使用していますが、私は唯一のstudentIdで検索したいので、私は()検索を使用することはできません。私はstudentIdに基づいて親権のエントリを見つけて、その学生が現在custodyEndTimeなしで保護されているかどうかを確認したい。

私はlinqクエリを使用しようとしましたが、それは私に匿名型を与え、それについても不平を言いました。

助けがあれば助かります。

乾杯。

答えて

0

これを試してください。他studentidで見つかったすべてのレコードはあなたがこのためにAny方法を使用することができ

return db.Custodies.Where(c => c.studentId == id && c.custodyEndTime == null).Any(); 
0

falseを返す場合any()はあなたに真の価値を提供します。

bool custodyExists = db.Custodies.Any(c => c.studentId == id && c.custodyEndTime == null); 

詳細については、MSDNをご覧ください。

さらに多くのLINQサンプルについては101 LINQ-Samplesをご覧ください。彼らのほとんどは、LINGとSQLをうまく連携して作業しています。

3

あなたは、コレクションを満たす内の任意の要素が条件を与えられているか否かを判断するためにAnyを使用することができます。

bool exists = db.Custodies.Any(c => c.studentId == id && c.custodyEndTime == null) 
関連する問題