Ben*_*man 1 .net c# entity-framework .net-3.5
我正在尝试运行此代码:
ItemTaxonomy iTaxonomy = from itemTaxonomy in connection.ItemTaxonomy
where itemTaxonomy.Item.ID == itemView.ID
orderby itemTaxonomy.Taxonomy.Name
select itemTaxonomy;
Run Code Online (Sandbox Code Playgroud)
当我编译它时,我收到错误:
无法隐式转换
'System.Linq.IOrderedQueryable<Website.Models.ItemTaxonomy>'
为'Website.Models.ItemTaxonomy'
.存在显式转换(您是否错过了演员?)
我相信问题在于,orderby itemTaxonomy.Taxonomy.Name
但我只是试图通过Taxonomy项目的名称而不是他们的ID来命令.有没有办法做到这一点?
不,问题是结果是序列,而您的变量是单个项目.
鉴于您正在表达订单,您必须期待多个价值 - 那么您想要用它们做什么?选项:
用途First()
:
ItemTaxonomy iTaxonomy = (from itemTaxonomy in connection.ItemTaxonomy
where itemTaxonomy.Item.ID == itemView.ID
orderby itemTaxonomy.Taxonomy.Name
select itemTaxonomy).First();
Run Code Online (Sandbox Code Playgroud)
这将返回ItemTaxonomy
具有相应项目ID的所有具有最早名称的名称.
更改变量类型:
IEnumerable<ItemTaxonomy> taxonomies =
from itemTaxonomy in connection.ItemTaxonomy
where itemTaxonomy.Item.ID == itemView.ID
orderby itemTaxonomy.Taxonomy.Name
select itemTaxonomy;
Run Code Online (Sandbox Code Playgroud)
现在你已经有了一系列的分类法来处理,而不是单个项目.