C# 如果表中不存在记录,如何返回false

C# 如果表中不存在记录,如何返回false,c#,asp.net,linq,asp.net-mvc-3,C#,Asp.net,Linq,Asp.net Mvc 3,要检查ClientAccessCode表中是否存在任何记录,如果不存在,则返回false if (!CheckAccessCodeExists()) { Console.WriteLine("Client Access code does not exist"); throw new ConfigurationErrorsException("Client Access code does not exist"); } private static bool CheckAcce

要检查ClientAccessCode表中是否存在任何记录,如果不存在,则返回false

if (!CheckAccessCodeExists())
{
    Console.WriteLine("Client Access code does not exist");
    throw new ConfigurationErrorsException("Client Access code does not exist");
}

private static bool CheckAccessCodeExists()
{
    using (EPOSEntities db = new EPOSEntities())
    {
        ClientAccountAccess clientAccess = db.ClientAccountAccesses
                .OrderByDescending(x => x.Id)
                .Take(1)
                .Single();

        if (clientAccess != null)
        {
            return true;
        }
        return false;
    }
}
//这是一个标记序列,在lamba表达式中不包含任何元素,那么我如何才能返回false呢?可能是使用了.Any()吗

谢谢

编辑 非常感谢大家的帮助,我现在就可以找到答案了,如果我有问题的话,还有一个问题

ClientAccountAccess clientAccess = db.ClientAccountAccesses
                  .OrderByDescending(x => x.Id)
                  .Take(1)
                  .Single();

if (clientAccess != null)
{
    db.DeleteObject(clientAccess);
}
我如何重构它来说一些更整洁的东西

if (db.ClientAccountAccesses.Any())
{
    db.DeleteObject(//what does in here do I have to use above code to get record to delete?);
}
问题是希望集合中至少有一个项,如果未找到1,则抛出异常。如果您的集合可能没有记录,那么您应该使用-这将返回您正在使用的类型的默认值,在您的情况下,这将返回
null

ClientAccountAccess clientAccess = db.ClientAccountAccesses
    .OrderByDescending(x => x.Id)
    .Take(1)
    .SingleOrDefault();

if (clientAccess != null)
{
    db.DeleteObject(clientAccess);
}

要删除所有内容吗?考虑到表中只有一条记录,可以删除该记录,但不删除实际记录table@John请参阅更新的应答更新的解决方案以进行编辑。向下投票者请评论。啊,是的,在玩的时候更新了,忘了换回来。固定的。干杯。当你可以通过2次查询而不受惩罚时,执行3次查询似乎是浪费时间的,而且这会检查是否存在任何记录,OP会检查某个特定记录是否已经存在。是的,你正在阅读问题的文本并进入问题的核心。我想补充一点,您当然可以在try-catch中包装Single(我不推荐这种方法,但知道您的选项很好)。似乎您为了执行delete Single record而进行了4次查询,但也没有db.SaveChanges()方法。@NikolaMitev请指出这4次查询,因为我只看到1次(当您调用SaveChanges时,看到2次)?是的,我故意把它漏掉了,因为这不是我想要证明的
    private static bool CheckAccessCodeExists()
    {
        using (EPOSEntities db = new EPOSEntities())
        {
            var item = db.ClientAccountAccesses.FirstOrDefault();
            if (item != null)
            {
                db.DeleteObject(item);
                db.SaveChanges();
                return true;
            }             
        }
        return false;
    }
ClientAccountAccess clientAccess = db.ClientAccountAccesses
    .OrderByDescending(x => x.Id)
    .Take(1)
    .SingleOrDefault();

if (clientAccess != null)
{
    db.DeleteObject(clientAccess);
}