2017-08-08 68 views
-3

我想根據數據庫中是否存在託管來使用此方法返回布爾值。使用實體框架從數據庫中返回結果

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

Custodies表使用複合主鍵,但我只想通過studentId進行搜索,因此我無法使用Find()。我想根據studentId查找保管條目,以檢查該學生目前是否處於無託管EndTime的託管狀態。

我試過使用LINQ查詢,但這給了我一個匿名類型,它也抱怨過。

任何幫助將是偉大的。

乾杯。

回答

0

試試這個。 any()會給你真正的價值,如果與其他studentid發現任何記錄返回false

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

你可以使用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)