我以前从未对LINQ做过任何事情,但我有使用MySQL的经验。
我在Microsoft® ASP.NET 4 Step by Step的第232页,这本书已经开始谈论很酷的LINQ。
本书已指示我输入我的第一个LINQ查询,但是它导致了Visual Studio中的19个错误,因为where
,orderby
和select
命令是不承认。
以下是本书的代码:
下面是我的代码(以截图的形式,以便您可以看到Visual Studio不喜欢的内容):
我做错了什么?
三江源
答案 0 :(得分:4)
在您的Linq查询中,TechnologyDescriptor标记带有“<>”正在bar。您需要做的是为technologyDescriptor列表中的单个项指定命名变量实例。例如:
GridView1.DataSource = from td in technologyDescriptor where td.TechnologyName.Contains(".Net") == true order by td.TechologyName.Length
select td.TechnologyName.ToUpper();
你可以认为这个查询类似于循环在technologyDesciptor列表上的foreach循环,而“td”是每个循环的单独记录
答案 1 :(得分:2)
您可以在TechnologyDescriptor周围使用不必要的尖括号(<>)。
答案 2 :(得分:2)
您已使用尖括号包围变量名称techDescriptor。请从代码中删除这些括号。
答案 3 :(得分:1)
它应该说:“来自 technologyDescriptor in ...”而不是from <TechnologyDescriptor>
答案 4 :(得分:1)
你的变量使用有点偏差。另外,technologyDescriptor
是一个集合吗?
如果是这样,请将您的代码更改为:
GridView1.DataSource = from t in technologyDescriptor
where t.TechnologyName.Contains(".NET")
orderby t.TechnologyName.Length
select t.TechnologyName.ToUpper();
答案 5 :(得分:0)
除了linq查询的问题之外,屏幕截图显示您有可变范围问题。具体来说,您使用technologyDescriptor
来引用两个不同的东西。您的表单是否具有名为“technologyDescriptor”的控件,或者在部分类的另一部分中声明的该名称的字段?