使用Entity Framework从数据库返回结果

时间:2017-08-08 13:01:57

标签: c# entity-framework linq

我正在尝试使用此方法根据数据库中是否已存在保管来返回布尔值。

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查询,但这给了我一个匿名类型,它也抱怨了。

任何帮助都会很棒。

干杯。

3 个答案:

答案 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。