0

我是 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'.

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

提前致谢。

4

2 回答 2

3

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

于 2013-07-12T13:27:21.167 回答
3

这段代码应该没问题,只要它entity.MakeIEnumerable<Table>具有Table属性IDName. 请确保它Make具有兼容的类型供 Linq 使用。

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

于 2013-06-01T21:58:29.910 回答