gpt4 book ai didi

c# - LINQ Join 仅适用于 Orderby

转载 作者:太空宇宙 更新时间:2023-11-03 18:48:07 25 4
gpt4 key购买 nike

我正在尝试运行这段代码:

ItemTaxonomy iTaxonomy = from itemTaxonomy in connection.ItemTaxonomy
where itemTaxonomy.Item.ID == itemView.ID
orderby itemTaxonomy.Taxonomy.Name
select itemTaxonomy;

编译时出现错误:

Cannot implicitly convert type 'System.Linq.IOrderedQueryable<Website.Models.ItemTaxonomy>' to 'Website.Models.ItemTaxonomy'. An explicit conversion exists (are you missing a cast?)

我认为问题在于 orderby itemTaxonomy.Taxonomy.Name但我只是想按分类项的名称而不是它们的 ID 来排序。有办法吗?

最佳答案

不,问题在于结果是一个序列,而您的变量是一个单个项目

鉴于您要表达顺序,您必须期待多个值 - 那么您要用它们做什么?选项:

  • 使用First():

    ItemTaxonomy iTaxonomy = (from itemTaxonomy in connection.ItemTaxonomy
    where itemTaxonomy.Item.ID == itemView.ID
    orderby itemTaxonomy.Taxonomy.Name
    select itemTaxonomy).First();

    这将返回所有具有适当项目 ID 的名称中最早的 ItemTaxonomy

  • 更改变量类型:

    IEnumerable<ItemTaxonomy> taxonomies = 
    from itemTaxonomy in connection.ItemTaxonomy
    where itemTaxonomy.Item.ID == itemView.ID
    orderby itemTaxonomy.Taxonomy.Name
    select itemTaxonomy;

    现在您需要处理一系列分类法,而不是单个项目。

关于c# - LINQ Join 仅适用于 Orderby,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2595551/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com