1

このクイッククエリがありますが、テーブルの名前がUser(SQLキーワード)であるため、Linqer(SQLからLINQへのコンバーター)はSQLクエリの変換に失敗します。

クエリは次のとおりです。

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が必要です。

LINQ me

4

1 に答える 1

2

どうやら、テーブル/列名としてキーワードを使用することは非常に悪い習慣です。User/Users は SQL Server のキーワードです。また、ジョインがごちゃごちゃしており、LinqerやSQL Metalでは処理できないのですが、LinqPadはクエリを理解できましたが、変換ツールではないのでダメです。私はついに大規模な名前変更操作を行い、失敗したクエリのほとんどが再び機能し始めました。ユーザー -> システムユーザー

于 2011-06-09T11:15:04.167 に答える