【发布时间】:2015-07-24 16:09:45
【问题描述】:
我有类似的东西:
List<Cat> cats = AnimalEdmContext.Current.Cats.ToList();
其中Cat 是我数据库中的一个表,其中包含CatId 和Breed 字段。
如何访问与给定整数 CatId 对应的 Breed 字段的值?
【问题讨论】:
标签: c# entity-framework list
我有类似的东西:
List<Cat> cats = AnimalEdmContext.Current.Cats.ToList();
其中Cat 是我数据库中的一个表,其中包含CatId 和Breed 字段。
如何访问与给定整数 CatId 对应的 Breed 字段的值?
【问题讨论】:
标签: c# entity-framework list
您需要查询数据库才能做到这一点。以下示例向您展示了如何做到这一点。
var theCatId = 1; // Or whatever
var theCatIWant = AnimalEdmContext.Current.Cats.Where(c => c.CatId = theCatId).Single();
var theBreedIs = theCatIWant.Breed;
这样做您只需从数据库中检索符合您条件的猫。另一方面,如果您像在问题中得到的那样对整个列表进行过滤,您将从数据库中检索所有记录,然后过滤它们,这会花费更多。
Single LINQ 方法还允许您指定单个元素应匹配的条件。我添加了 Where 方法,以便更清楚我们在做什么。
如果没有找到记录或找到多个记录,Single 将引发异常。
【讨论】:
你可以使用 ::
var catBreed = cats.First(x=>x.CatdId == desiredId).Breed;
【讨论】:
如果您正在寻找特定项目,您可以执行以下操作:
var cat = AnimalEdmContext.Current.Cats.First(cat => cat.CatId == 1);
var breed = cat.Breed;
在本例中,这将检索表中 ID 为 1 的第一个 Cat 项目。
【讨论】: