【发布时间】:2013-04-27 15:34:37
【问题描述】:
我有以下 3 个查询。第一个工作正常,但后两个抛出一个错误,说 range varible Year (or semester, respectively) hides a variable in an enclosing block or a range variable previously defined in the query expression. 我不是最擅长编码,所以我在 MSDN 上查找的任何内容都让我更加困惑。这里的任何帮助都会很棒。
Dim compulsoryModule = (From mods In db.Modules
Join deg In db.Degrees On mods.Degree_code Equals deg.Degree_code
Where deg.Degree_code = degree And mods.Compulsory = True And mods.Level = 1
Select mods.Module_code)
Dim year = (From mods1 In db.Modules
Join deg1 In db.Degrees On mods1.Degree_code Equals deg1.Degree_code
Where deg1.Degree_code = degree And mods1.Compulsory = True And mods1.Level = 1
Select mods1.Year)
Dim semester = (From mods In db.Modules
Join deg In db.Degrees On mods.Degree_code Equals deg.Degree_code
Where deg.Degree_code = degree And mods.Compulsory = True And mods.Level = 1
Select mods.Semester)
这些错误仅在select mods1.year 和select mods.semester NB 的行上抛出year 查询数据库暗淡已更改为在它们上面有一个1。这只是我试图解决问题。如果我删除它们,它不会更改代码。
【问题讨论】:
-
该错误表明范围内还有另一个变量已命名为 Year/Semester。如果从任一变量中删除
Dim,错误会消失还是变成Type错误?
标签: database vb.net linq variables range