我正在尝试运行以下代码:
ItemTaxonomy iTaxonomy = from itemTaxonomy in connection.ItemTaxonomy
where itemTaxonomy.Item.ID == itemView.ID
orderby itemTaxonomy.Taxonomy.Name
select itemTaxonomy;
当我编译它时,出现错误:
无法隐式转换类型
'System.Linq.IOrderedQueryable<Website.Models.ItemTaxonomy>'
至'Website.Models.ItemTaxonomy'
。存在显式转换(您是否缺少演员表?)我相信问题出在
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;
现在,您需要处理一系列分类法,而不是单个项目。