C# select子句中表达式的类型不正确。调用';时类型推断失败;选择';

C# select子句中表达式的类型不正确。调用';时类型推断失败;选择';,c#,database,linq,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'. 我在网上搜

我是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'.
我在网上搜索,但找不到任何解决办法。我不知道这个问题出了什么问题


提前感谢。

只要
实体,此代码就可以了。Make
IEnumerable
类型的属性,对于某些类型的
,具有属性
ID
名称
。请确保
确保
具有可供Linq使用的兼容类型


似乎有些
Make
ID
Name
是方法而不是属性,您必须在适当的情况下调用它们(使用
Make()
ID()
Name()
)。当然,如果
ID
Name
是罪魁祸首,那么用于实例化匿名类型的语法将变得无效,因为您无法声明
new{table.Name()}
。相反,您必须执行
新建{Name=table.Name()}
。阅读有关匿名类型实例化的更多信息。

只要
实体,此代码就可以了。Make
IEnumerable
类型的属性,对于某些类型
,具有属性
ID
名称
。请确保
确保
具有可供Linq使用的兼容类型


似乎有些
Make
ID
Name
是方法而不是属性,您必须在适当的情况下调用它们(使用
Make()
ID()
Name()
)。当然,如果
ID
Name
是罪魁祸首,那么用于实例化匿名类型的语法将变得无效,因为您无法声明
new{table.Name()}
。相反,您必须执行
新建{Name=table.Name()}
。阅读有关匿名类型实例化的更多信息。

在您的示例中,这不太可能,但我以前遇到过一个问题,即您试图在select cause中创建的一个匿名类型对象属于您未引用的类型。例如,如果名称是一个XElement,而您没有对System.Xml.Linq的引用,您将收到此错误。

在您的示例中,这不太可能,但我以前遇到过一个问题,即您试图在select cause中创建的匿名类型的对象中有一个属于您没有引用的类型。例如,如果名称是一个XElement,而您没有对System.Xml.Linq的引用,您将收到此错误。

要了解Linq read,我想您应该在select中查找它:
select new{ID=table.ID,Name=table.Name}
@Tim are不是
select new{table.ID,table.Name}
是完全合法的代码,如果
ID
Name
是属性?@Tim如果选择了属性或字段,则可以在不指定属性名称的情况下实例化匿名类型。这个例子有什么不同吗?什么类型是
entity.Make
?要了解linq read,我想您应该在select中找到它:
select new{ID=table.ID,Name=table.Name}
@Tim are不是
select new{table.ID,table.Name}
是完全合法的代码,如果
ID
Name
是属性?@Tim如果选择了属性或字段,则可以在不指定属性名称的情况下实例化匿名类型。此示例是否因某些原因而有所不同?什么类型是
实体。Make
?如果是这种情况,您还应该看到另一个错误,告诉您缺少什么using you(我来这里之前错过了)。如果是这种情况,您还应该看到另一个错误,告诉您缺少什么using you(我来这里之前错过了)。