【问题标题】:Return a result from a database using Entity Framework [duplicate]使用实体框架从数据库返回结果[重复]
【发布时间】:2018-01-16 01:40:38
【问题描述】:

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

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 查找监护条目,以检查该学生当前是否处于没有监护结束时间的监护中。

我尝试使用 linq 查询,但它给了我一个匿名类型,它也抱怨这个问题。

任何帮助都会很棒。

干杯。

【问题讨论】:

    标签: c# entity-framework linq


    【解决方案1】:

    试试这个。 any() 将给你真正的价值,如果找到任何带有学生 ID 的记录否则返回 false

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

    【讨论】:

      【解决方案2】:

      您可以为此使用Any 方法。

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

      查看MSDN 了解更多信息。

      有关更多 LINQ 示例,请查看101 LINQ-Samples。他们中的大多数人都很好地使用了 LING to SQL。

      【讨论】:

        【解决方案3】:

        您可以使用Any 来确定集合中的任何元素是否满足给定条件:

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

        【讨论】:

          猜你喜欢
          • 2018-06-16
          • 1970-01-01
          • 2011-09-19
          • 2020-09-09
          • 1970-01-01
          • 1970-01-01
          • 2015-05-29
          • 2011-12-18
          • 2014-07-05
          相关资源
          最近更新 更多