我正在尝试使用此方法根据数据库中是否已存在保管来返回布尔值。
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查找托管条目,以检查该学生目前是否处于监管状态且没有custodyEndTime。
我尝试使用linq查询,但这给了我一个匿名类型,它也抱怨了。
任何帮助都会很棒。
干杯。
答案 0 :(得分:3)
您可以使用Any
来确定集合中的任何元素是否满足给定条件:
bool exists = db.Custodies.Any(c => c.studentId == id && c.custodyEndTime == null)
答案 1 :(得分:0)
试试这个。如果使用studentid else找到的任何记录返回false
,any()
将为您提供真正的价值
return db.Custodies.Where(c => c.studentId == id && c.custodyEndTime == null).Any();
答案 2 :(得分:0)
您可以使用Any
方法。
bool custodyExists = db.Custodies.Any(c => c.studentId == id && c.custodyEndTime == null);
有关详细信息,请查看MSDN。
有关更多LINQ示例,请查看101 LINQ-Samples。他们中的大多数人都在使用LING to SQL。