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()
,其中包含所有具有适当项目ID的项目中最早的名称itemstaxonomy
- 更改变量类型:
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()
,其中包含所有具有适当项目ID的项目中最早的名称itemstaxonomy
- 更改变量类型:
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 选择项目分类法;