dotnetcore / dotnetcore/FreeSql

highgo瀚高数据库不支持Top语法

Open
#1,722 6 comments 0 reactions 0 assignees View on GitHub
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.