Skip to content

Conversation

@617206652
Copy link

@617206652 617206652 commented Jan 16, 2026

Overview:
This PR adds support for the GBase8s database.

Key Changes:
Added the GBase8s dialect directory, and the framework has also incorporated the processing procedures for GBase8s.

Related Issue: #258.

Components required for the Windows:
https://www.gbase.cn/download/gbase-8s-1?category=DRIVER_PACKAGE
download:clientsdk_3.6.3_3X3_1_ee39df_WIN2003_x86_32.ZIP

Checklist:
Local tests passed.

No breaking changes identified.

<Using Remove="System.Net.Http" />
</ItemGroup>
<ItemGroup>
<Content Include="..\..\..\..\GeneralData.EntityFrameworkCore.GBase.DataProvider.dll" PackagePath="lib\netstandard2.1">
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should not be included

</PropertyGroup>

<ItemGroup>
<PackageReference Include="GeneralData.GBase8s.DataProvider" />
Copy link
Owner

@madelson madelson Jan 17, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove

<CentralPackageTransitivePinningEnabled>true</CentralPackageTransitivePinningEnabled>
</PropertyGroup>
<ItemGroup>
<PackageVersion Include="GeneralData.GBase8s.DataProvider" Version="1.0.0.1" />
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This library isn't well-established enough for use here (< 1K downloads, < 2 months old).

Looks like Odbc seems to be the more common pattern for GBase interactions in the NuGet world

Console.WriteLine(ex.StackTrace);
foreach (GbsError err in ((GbsException)ex).Errors)
{
Console.WriteLine("Native Error" + err.NativeError);
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove all Console logs

@madelson
Copy link
Owner

Thanks for raising this PR @617206652 .

After reviewing this and looking into GBase a bit more, I have concerns about being able to take on long-term support for GBase at this time.

However, this made me reflect on the fact that of the code written here, the only thing that's really specific to GBase is GBaseDbmsLock.

This led me to come up with a proposal for a new extensibility layer which would basically expose the helpful internals from DistributedLock.Core to any ADO.NET-based implementation in a way that would make implementation very easy.

Then the ecosystem would look like this:

IDistributedSynchronizationProvider provider = new AdoDistributedSynchronizationProvider( // part of core DistributedLock
    connectionString,
    GBaseSynchronizationDriver.Instance); // extension library, e.g. [YourName].GBaseSynchronizationDriver

If this interests you, I think it would be very easy to pivot the work you've done here to become the implementation of the Ado extension layer.

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

Successfully merging this pull request may close these issues.

2 participants