C# LINQ连接仅适用于Orderby

C# LINQ连接仅适用于Orderby,c#,.net,entity-framework,.net-3.5,C#,.net,Entity Framework,.net 3.5,我正在尝试运行以下代码: ItemTaxonomy iTaxonomy = from itemTaxonomy in connection.ItemTaxonomy where itemTaxonomy.Item.ID == itemView.ID orderby itemTaxonomy.Taxonomy.Name select itemTaxo

我正在尝试运行以下代码:

ItemTaxonomy iTaxonomy = from itemTaxonomy in connection.ItemTaxonomy
                         where itemTaxonomy.Item.ID == itemView.ID
                         orderby itemTaxonomy.Taxonomy.Name
                         select itemTaxonomy;
当我编译它时,我得到一个错误:

无法隐式转换类型
“System.Linq.IOrderedQueryable”
“网站.模型.项目分类法”
。存在显式转换(是否缺少强制转换?)


我认为问题在于
orderbyitemstaxonomy.Taxonomy.Name
,但我只是尝试按分类法项的名称而不是它们的ID排序。有没有办法做到这一点?

LINQ查询返回一组(
IEnumerable
)的
ItemTaxonomy
对象,您正试图将其分配给类型为
ItemTaxonomy
的变量


您需要将变量的类型更改为
IEnumerable
。(或调用
First()

LINQ查询返回一组
ItemTaxonomy
对象(
IEnumerable
),您正试图将其分配给类型为
ItemTaxonomy
的变量


您需要将变量的类型更改为
IEnumerable
。(或者调用
First()

您似乎正在从查询中捕获单个值。尝试:

或者更明确地说:

IQueryable<ItemTaxonomy> iTaxonomy = ...
IQueryable iTaxonomy=。。。

如果您确实需要单个项目,请使用
、First()
.single()

您似乎正在从查询中捕获单个值。尝试:

或者更明确地说:

IQueryable<ItemTaxonomy> iTaxonomy = ...
IQueryable iTaxonomy=。。。

如果确实需要单个项目,请使用
、First()
.single()
否,问题是结果是一个序列,而变量是单个项目

考虑到您要表达排序,您必须期望多个值-那么您想用它们做什么呢?选项:

  • 首先使用
    First()

    这将返回
    itemstaxonomy
    ,其中包含所有具有适当项目ID的项目中最早的名称

  • 更改变量类型:

    IEnumerable<ItemTaxonomy> taxonomies = 
        from itemTaxonomy in connection.ItemTaxonomy
        where itemTaxonomy.Item.ID == itemView.ID
        orderby itemTaxonomy.Taxonomy.Name
        select itemTaxonomy;
    
    IEnumerable分类法=
    来自connection.itemTaxonomy中的itemTaxonomy
    其中itemTaxonomy.Item.ID==itemView.ID
    orderby itemTaxonomy.Taxonomy.Name
    选择项目分类法;
    
    现在,您需要处理一系列分类法,而不是单个项目


否,问题是结果是一个序列,而变量是单个项目

考虑到您要表达排序,您必须期望多个值-那么您想用它们做什么呢?选项:

  • 首先使用
    First()

    这将返回
    itemstaxonomy
    ,其中包含所有具有适当项目ID的项目中最早的名称

  • 更改变量类型:

    IEnumerable<ItemTaxonomy> taxonomies = 
        from itemTaxonomy in connection.ItemTaxonomy
        where itemTaxonomy.Item.ID == itemView.ID
        orderby itemTaxonomy.Taxonomy.Name
        select itemTaxonomy;
    
    IEnumerable分类法=
    来自connection.itemTaxonomy中的itemTaxonomy
    其中itemTaxonomy.Item.ID==itemView.ID
    orderby itemTaxonomy.Taxonomy.Name
    选择项目分类法;
    
    现在,您需要处理一系列分类法,而不是单个项目


谢谢!我真傻。我完全错过了我没有将结果设置为列表。谢谢!我真傻。我完全没有意识到我没有将结果设置为列表。