当前位置: 首页 > 面试题库 >

LINQ生成错误查询,错误未知列(VB.NET MySQL)

洪雨石
2023-03-14
问题内容

我正在使用VB.NET和MySQL在MVC2中进行开发,尝试将简单的SQL查询转换为LINQ时遇到问题。

SQL查询:

SELECT Location_Number, sum(Column1) as totalC1, sum(Column2) as totalC2
FROM MyTable 
WHERE year = 2010 and month = 8
GROUP BY Location_Number 
ORDER BY Location_Number

LINQ查询:

From r In MyTable _
Where r.Year = 2010 And r.Month = 8 _
Group r By LN = r.Location_Number Into l = Group _
Order By LN _
Select New With { _
  .Location_Number = LN, _
  .DepositCount = l.Sum(Function(r) r.Column1), _
  .OtherCount = l.Sum(Function(r) r.Column2) _
}

生成的错误是:

执行命令定义时发生错误。有关详细信息,请参见内部异常。

内部异常是:

“字段列表”中的未知列“ GroupBy1.K1”

这是LINQ生成的SQL:

SELECT  `Project1`.`Location_Number`,   `Project1`.`C1`,   `Project1`.`C2`  
FROM (
    SELECT  `GroupBy1`.`A1` AS `C1`,   `GroupBy1`.`A2` AS `C2`,   `GroupBy1`.`K1` AS `Location_Number`
    FROM (
            SELECT  Sum(`Column1`) AS `A1`,   Sum(`Column2`) AS `A2`  
            FROM `MyTable` AS `Extent1`  
            WHERE (`Extent1`.`Year` = @p__linq__0) AND (`Extent1`.`Month` = @p__linq__1)   
            GROUP BY   `Extent1`.`Location_Number`
    ) AS `GroupBy1`
) AS `Project1`   
ORDER BY   `Location_Number` ASC

查看该查询,很容易找出导致错误的原因。简而言之,最内部的查询仅返回2列,而其上方的查询试图选择SELECT3,因此出现“未知列错误”。那么为什么会这样呢?我的LINQ查询出了什么问题?

谢谢


问题答案:

这是一个MySQL连接器错误:http :
//bugs.mysql.com/bug.php?id=46742

在最新版本(6.3.5)中未修复。



 类似资料:
  • 问题内容: 尝试执行此更新查询时,我不断收到MySQL错误#1054: 这可能是一些语法错误,但我尝试使用内部联接和其他更改,但始终收到相同的消息: 问题答案: 尝试对“ y”使用不同的引号,因为标识符引号是反引号(“`”)。否则,MySQL会“认为”您指向名为“ y”的列。 另请参见MySQL 5文档

  • 问题内容: 我试图让到效果的,然后(在Windows 7; ñ 。一个透明安装了Cygwin所有X命令礼貌 ñ x的命令决心在命令行就好了)。 最初,我使用,但是想捕获stdout / stderr信息,所以我想使用,然后重写代码以使用它。但是,这破坏了一切。 重写的命令变为: 但是,运行此命令将产生以下错误: 重写的命令变为: 但是,运行此命令将产生以下错误: 如何使spawn运行可以正常使用的

  • 问题内容: 我遇到了NHibernate的间歇性问题,该问题会为实体生成查询,但是用来自完全不同(且不相关)的实体的列替换了其中的一列。 它只能替换单个列,通常可以通过重新启动应用程序来解决(尽管有时需要进行几次尝试)。 ASP.NET应用程序(.NET 4.0) 在Application_Start期间创建的SessionFactory NHibernate 3.3.1-通过代码映射完成所有映射

  • 我有以下代码片段 我尝试运行应用程序时出现以下错误(部分) 似乎type="num "没有被处理。我怀疑年龄int也可能是一个问题,因为它是一个int,但需要一个string。从sting到int的反向转换也可能是一个问题。 任何帮助是值得赞赏的。 谢谢

  • 为什么程序不起作用?当我在第一个问题上输入'1',然后在第二个问题上输入一些东西时,出现了一个红色文本:(程序没有完成,但它应该能工作,不是吗?) 线程“main”Java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:0在Java.lang.String.Charat(String.Java:658)在javaApplication2.javaAp

  • 我试图按照https://docs.angularjs.org/tutorial的教程操作,但在运行该命令时出错 Angulal-PhoneCat@0.0.0 postinstall c:\git\Angulal-paractions\Angulal-PhoneCat bower install Angulal-PhoneCat@0.0.0update-webdriver C:\git\Angul