dotnetcore / dotnetcore/FreeSql
highgo瀚高数据库不支持Top语法
- Dominant language
- C#
- Stars
- 4.4k
- Forks
- 910
- PR merge metrics
- No merged PRs in 30d
Description
#### 问题描述及重现代码:
highgo瀚高数据库不支持Top语法,需要使用limit语法替换
```c#
_userRepository.GetAsync(a => a.UserName == req.UserName && a.Password == password && !a.IsDisabled)
最终生成的sql为:
SELECT TOP 1 a.[ID], a.[REVISION], a.[IS_DISABLED], a.[IS_DELETED], a.[GROUP_ID], a.[CREATED_BY], a.[CREATED_BY_NAME], a.[CREATED_TIME], a.[UPDATED_BY], a.[UPDATED_BY_NAME], a.[UPDATED_TIME], a.[USER_TYPE], a.[USER_NAME], a.[DISPLAY_NAME], a.[MOBILE], a.[PASSWORD], a.[MAIL], a.[GROUP_TYPE_ID], a.[PERMISSION_ID], a.[Gender], a.[OPENID], a.[NickName], a.[ERROR_COUNT], a.[LAST_CHANGE_PWD_DATE], a.[IS_LOCK], a.[AVATAR], a.[DESCRIPTION]
FROM [sys_user] a
WHERE (a.[USER_NAME] = N'admin' AND a.[PASSWORD] = N'123456' AND a.[IS_DISABLED] = 0) AND (a.[IS_DELETED] = 0)
需要生成的sql为:
SELECT a.ID, a.REVISION, a.IS_DISABLED, a.IS_DELETED, a.GROUP_ID, a.CREATED_BY, a.CREATED_BY_NAME, a.CREATED_TIME, a.UPDATED_BY, a.UPDATED_BY_NAME, a.UPDATED_TIME, a.USER_TYPE, a.USER_NAME, a.DISPLAY_NAME, a.MOBILE, a.PASSWORD,
a.MAIL, a.GROUP_TYPE_ID, a.PERMISSION_ID, a.Gender, a.OPENID, a.NickName, a.ERROR_COUNT, a.LAST_CHANGE_PWD_DATE, a.IS_LOCK, a.AVATAR, a.DESCRIPTION
FROM sys_user a
WHERE (a.USER_NAME = N'admin' AND a.PASSWORD = N'123456' AND a.IS_DISABLED = 0) AND (a.IS_DELETED = 0)
LIMIT 1
```
#### 数据库版本
瀚高安全版数据库V4.5
#### 安装的Nuget包
FreeSql.All(3.2.808)
#### .net framework/. net core? 及具体版本
.Net 6
Contributor guide
No contributing guide indexed for this repository
Research direction
Reproduce the reported GetAsync query against HighGo Security Database V4.5 using FreeSql.All 3.2.808 on .NET 6, then locate the provider's SQL-generation path for this query. The work is done when the HighGo output uses LIMIT 1 instead of SELECT TOP 1 and the query still returns the expected record.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp, sql
- Domain
- database
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100