Entity framework 如何访问我的查询结果中的项目?

Entity framework 如何访问我的查询结果中的项目?,entity-framework,ienumerable,Entity Framework,Ienumerable,以下是我的代码片段: using (var uow = new UnitOfWork()) { //ItemType itself ItemType itemType1 = uow.ItemTypeRepository.Get(i => i.Name == "ServerTypeList").FirstOrDefault(); Assert.IsTrue(itemType1.ID != null); var itemType2 = uow.ItemType

以下是我的代码片段:

using (var uow = new UnitOfWork())
{
    //ItemType itself
    ItemType itemType1 = uow.ItemTypeRepository.Get(i => i.Name == "ServerTypeList").FirstOrDefault();
    Assert.IsTrue(itemType1.ID != null);

    var itemType2 = uow.ItemTypeRepository.Get(i => i.Name == "ServerTypeList", orderBy: o => o.OrderBy(d => d.Name), includeProperties: "Items");
    //itemType2[0].
...
我试图列出itemType2中的所有项(“Get”方法返回IEnumerable):


项目类型2.First()有什么问题吗?项目[0]

这是因为
itemType2
是一个序列。根据您在调试器中看到的情况,它只有一个元素。如果它总是只有一个元素,那么应该使用
itemType2.Single().Items[0]

此序列的每个元素都有一个
Items
属性,该属性似乎是一个列表或数组或其他可以索引的内容,因此,一旦到达该位置,您可以如上所述对其进行索引,也可以对其进行迭代:

foreach (var item in itemType2.Single().Items)
{
    // Do something with each item in the sequence
}

我已经编辑了你的标题。请参阅“”,其中的共识是“不,他们不应该”。