【问题标题】:Range variable hides a variable in an enclosing block LINQ [closed]范围变量隐藏封闭块LINQ中的变量[关闭]
【发布时间】: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


【解决方案1】:

我将Dim 年更改为年,将Dim 学期更改为学期。这已经纠正了错误

【讨论】:

  • 很高兴为您工作!
  • 与编码世界中的一切一样,它只是打开了一个对接负载更多的问题有待解决哈哈。不过谢谢
  • 是的...这是因为 Dim 变量名 = Linq.SelectedName
  • 另一种解决方案是后置变量: 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).FirstOrDefault().Year Dim term = (From mods In db.Modules ....... 选择 mods).FIrstOrDefault().Semester
  • 使用 VB,您不能声明与在 Linq 查询中选择的任何内容相匹配的变量名。这只会影响 VB,并且有点令人不安,因为它没有像应有的那样在单独的上下文中编译。
猜你喜欢
  • 2014-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-13
  • 2017-04-21
  • 2018-02-11
  • 2023-03-10
相关资源
最近更新 更多