代码之家  ›  专栏  ›  技术社区  ›  DoomerDGR8

Linqer不会做这个SQL。:(

  •  1
  • DoomerDGR8  · 技术社区  · 15 年前

    我有这个快速查询,但是由于我的表名为user(sql关键字),Linqer(一个sql-to-linq转换器)无法转换sql查询。

    以下是查询:

    select top(100)percent
    dbo.[用户].oid,
    dbo.[user].firstname+“”+dbo.[user].lastname为[user name],
    计数(dbo.assignedcounty.oid)为[分配的县],
    dbo.user type.name作为[用户类型]
    从
    dbo.usertype用户类型
    内部联接dbo.[user]on dbo.usertype.oid=dbo.[user].usertypeid
    在dbo.[user].oid=dbo.assignedcounty.userid上左外部联接dbo.assignedcounty
    分组依据
    dbo.[用户].oid,
    dbo.[user].firstname+“”+dbo.[user].firstname,
    dbo.usertype.name,,
    dbo.[用户].isActive
    有
    (dbo.[user].isactive=1)
    排序依据
    [用户名]
    < /代码> 
    
    

    有人能指导我如何解决这个问题吗?我需要Linq。

    以下是查询:

    SELECT TOP (100) PERCENT
      dbo.[User].OID,
      dbo.[User].FirstName + ' ' + dbo.[User].LastName AS [User Name],
      COUNT(dbo.AssignedCounty.OID) AS [Counties Assigned],
      dbo.UserType.Name AS [User Type]
    FROM
      dbo.UserType
      INNER JOIN dbo.[User] ON dbo.UserType.OID = dbo.[User].UserTypeID
      LEFT OUTER JOIN dbo.AssignedCounty ON dbo.[User].OID = dbo.AssignedCounty.UserID
    GROUP BY
      dbo.[User].OID,
      dbo.[User].FirstName + ' ' + dbo.[User].LastName,
      dbo.UserType.Name,
      dbo.[USER].IsActive
    HAVING
      (dbo.[User].IsActive = 1)
    ORDER BY
      [User Name]
    

    有人能指导我如何解决这个问题吗?我需要Linq。

    1 回复  |  直到 8 年前
        1
  •  1
  •   DoomerDGR8    15 年前

    显然,使用关键字作为表/列名称是一个很坏的习惯。用户是SQL Server中的关键字。另外,连接混乱,而linqer或sql metal无法处理它们,但是linqpad能够理解查询,但是由于它不是一个转换工具,所以对我没有好处。最后我做了一个大规模的重命名操作,我失败的大部分查询都重新开始工作。用户-系统用户