【问题标题】:Retrieve value of field in list of entity objects by its ID field通过 ID 字段检索实体对象列表中字段的值
【发布时间】:2015-07-24 16:09:45
【问题描述】:

我有类似的东西:

List<Cat> cats = AnimalEdmContext.Current.Cats.ToList();

其中Cat 是我数据库中的一个表,其中包含CatIdBreed 字段。 如何访问与给定整数 CatId 对应的 Breed 字段的值?

【问题讨论】:

    标签: c# entity-framework list


    【解决方案1】:

    您需要查询数据库才能做到这一点。以下示例向您展示了如何做到这一点。

    var theCatId = 1; // Or whatever
    var theCatIWant = AnimalEdmContext.Current.Cats.Where(c => c.CatId = theCatId).Single();
    var theBreedIs = theCatIWant.Breed;
    

    这样做您只需从数据库中检索符合您条件的猫。另一方面,如果您像在问题中得到的那样对整个列表进行过滤,您将从数据库中检索所有记录,然后过滤它们,这会花费更多。

    Single LINQ 方法还允许您指定单个元素应匹配的条件。我添加了 Where 方法,以便更清楚我们在做什么。

    如果没有找到记录或找到多个记录,Single 将引发异常。

    【讨论】:

      【解决方案2】:

      你可以使用 ::

      var catBreed = cats.First(x=>x.CatdId == desiredId).Breed;

      【讨论】:

        【解决方案3】:

        如果您正在寻找特定项目,您可以执行以下操作:

        var cat = AnimalEdmContext.Current.Cats.First(cat => cat.CatId == 1);
        var breed = cat.Breed;
        

        在本例中,这将检索表中 ID 为 1 的第一个 Cat 项目。

        【讨论】:

          猜你喜欢
          • 2017-12-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-05-31
          • 2013-05-10
          相关资源
          最近更新 更多