首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查询EntityCollection

查询EntityCollection
EN

Stack Overflow用户
提问于 2010-08-15 07:58:14
回答 1查看 1.4K关注 0票数 1

我已经用默认的EF方式映射了我的类,我的所有FKs都是EntityCollection,因此Bike.Wheels就是EntityCollection。

我怎么和车轮一起工作?

  • 我想要检索第一轮和第二轮
  • ,我想要循环通过车轮
  • ,我想得到所有wheel.Bolts

我不能使用get/select/[]。

我是不是遗漏了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-08-15 08:29:56

嗯,有些操作非常简单--其他操作有点杂乱无章--所以您可能需要重新设计一些使用简单方法的方法。

若要遍历所有车轮,只需使用foreach语句:

代码语言:javascript
复制
using(BikeEntities ctx = new BikeEntities())
{
   // assuming you just somehow pick a bike to inspect the wheels for
   Bike myBike = ctx.Bikes.FirstOrDefault(b => b.BikeID == 5);

   foreach(Wheel w in myBike.Wheels)
   {
       // do something with your wheel  
       foreach(Bolt b in w.Bolts)
       {
           // do something to al the bolts on your wheel
       }           
   }
}

获取集合的第一、第二等更棘手,因为您不能使用通常的数组索引。您可以:

  • 使用.Skip()方法--但是对于单个对象检索
  • 来说有点笨拙,如果集合不太大,可以将其“物化”为List<T>,然后使用数组索引

所以要么你用这样的东西:

代码语言:javascript
复制
Wheel firstWheel = myBike.Wheels.FirstOrDefault();
Wheel secondWheel = myBike.Wheels.Skip(1).FirstOrDefault();

或者将集合具体化为列表:

代码语言:javascript
复制
List<Wheel> myWheels = myBike.Wheels.ToList();

Wheel firstWheel = myWheels[0];
Wheel secondWheel = myWheels[1];
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3486637

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档