select子句中表达式的类型不正确。 “Select”调用中的类型推断失败

时间:2013-06-01 21:49:11

标签: c# database linq

我是C#的新手,我现在正在学习LINQ并尝试选择一些数据。 。

var carMake = (from table in entity.Make select new { table.ID, table.Name }).ToList(); 

我写了上面的查询,但我有一个错误:

The type of the expression in the select clause is incorrect. Type inference failed in the call to 'Select'.

我在网上搜索,但找不到任何解决方案。我不知道该查询有什么问题。

先谢谢。

2 个答案:

答案 0 :(得分:3)

只要entity.MakeIEnumerable<Table>类型的属性,对于某些类型为Table且属性为IDName的属性,此代码就可以了。请确保Make具有适用于Linq的兼容类型。

似乎有些MakeIDName是方法而不是属性,您必须调用它们(使用Make(),{{1}在适当的时候,或ID())。当然,如果Name()ID是罪魁祸首,那么实例化匿名类型的语法将变为无效,因为您无法声明Name。相反,你必须做new { table.Name() }。阅读有关匿名类型实例化here的更多信息。

答案 1 :(得分:3)

在您的示例中,它不太可能,但我之前遇到过您在选择原因中尝试创建的匿名类型对象之一的问题是您没有引用的类型。例如,如果Name是一个XElement,并且您没有对System.Xml.Linq的引用,则会收到此错误。