Skip to content

Consider changing dependency Thinktecture.EntityFrameworkCore.Sqlite => Microsoft.EntityFrameworkCore.Sqlite.Core #72

@vypsim

Description

@vypsim

Hi,

In the latest release of SQLitePCL.raw the SQLitePCLRaw.bundle_sqlite3 package has been removed. This package used to handle automatically setting SQLite provider for linux systems (e.g. pipeline builds).

Because of this, in our projects, we had to swap Microsoft.EntityFrameworkCore.Sqlite to *.Core package, then call:

#if !IS_WINDOWS
        SQLitePCL.raw.SetProvider(new SQLitePCL.SQLite3Provider_sqlite3());
#endif

We need to do that because we also use NetTopologySuite and need to install both libsqlite3-dev libsqlite3-mod-spatialite and use the system-wide version of SQLite on linux build pipelines.

Needless to say, it got messy and complicated, but the main issue we faced was that Thinktecture.EntityFrameworkCore.Sqlite dependended on Microsoft.EntityFrameworkCore.Sqlite which pulled in SQLitePCLRaw.bundle_e_sqlite3 which overrode our provider by automatically setting the provider of SQLite to the windows version, which caused our test host to crash.

By changing Thinktecture.EntityFrameworkCore.Sqlite to depend on Microsoft.EntityFrameworkCore.Sqlite.Core this gives control to the library users to choose which provider they want to use based on their requirements.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions