Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
cfires opened this issue Jan 20, 2024 · 6 comments
Open

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

cfires opened this issue Jan 20, 2024 · 6 comments

Comments

@cfires
Copy link

cfires commented Jan 20, 2024

问题描述及重现代码:

highgo瀚高数据库不支持Top语法,需要使用limit语法替换

_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

@2881099
Copy link
Collaborator

2881099 commented Jan 20, 2024

FreeSqlBuilder DataType 选择的是什么

https://freesql.net/guide/freesql-provider-custom.html

@cfires
Copy link
Author

cfires commented Jan 25, 2024

FreeSqlBuilder DataType 选择的是什么

https://freesql.net/guide/freesql-provider-custom.html

DataType:17,Custom
使用的包:FreeSql.All(3.2.808) + FreeSql.Provider.Custom(3.2.808)

@2881099
Copy link
Collaborator

2881099 commented Jan 25, 2024

DataType.CustomPostgreSQL 用这个

@cfires
Copy link
Author

cfires commented Jan 25, 2024

现在用的是Factory方式

case DataType.Custom: freeSqlBuilder.UseConnectionFactory(dbType, () => new NhgdbConnection(connectionStr)); freeSqlBuilder.UseQuoteSqlName(false); break;

改用DataType.CustomPostgreSQL对应的连接类是哪个?

@2881099
Copy link
Collaborator

2881099 commented Jan 25, 2024

也是这样,只是改一下 DataType.CustomPostgreSQL

@2881099
Copy link
Collaborator

2881099 commented Jan 25, 2024

var fsql = new FreeSqlBuilder()
    .UseConnectionFactory(DataType.CustomPostgreSQL, () => 
        new NhgdbConnection("Data Source=..."))
    .UseNoneCommandParameter(true)
    .UseMonitorCommand(cmd => Console.WriteLine(cmd.CommandText))
    .Build();
fsql.SetDbProviderFactory(NhgdbConnectorFactory.Instance);

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants