https://fsprojects.github.io/SQLProvider/
A general F# SQL database erasing type provider, supporting LINQ queries, schema exploration, individuals, CRUD operations and much more besides.
https://fsprojects.github.io/SQLProvider/
database dotnet firebirdsql fsharp mariadb mysql oracle postgresql sql sql-server sqlite sqlserver typeprovider
Last synced: 1 day ago
JSON representation
A general F# SQL database erasing type provider, supporting LINQ queries, schema exploration, individuals, CRUD operations and much more besides.
- Host: GitHub
- URL: https://fsprojects.github.io/SQLProvider/
- Owner: fsprojects
- License: other
- Created: 2013-12-09T19:23:39.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2025-05-05T22:03:28.000Z (3 days ago)
- Last Synced: 2025-05-05T22:40:42.135Z (3 days ago)
- Topics: database, dotnet, firebirdsql, fsharp, mariadb, mysql, oracle, postgresql, sql, sql-server, sqlite, sqlserver, typeprovider
- Language: F#
- Homepage: https://fsprojects.github.io/SQLProvider
- Size: 51.1 MB
- Stars: 597
- Watchers: 44
- Forks: 146
- Open Issues: 126
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
- Xaramin-Guide - SQLProvider
README
[](https://github.com/fsprojects/SQLProvider/issues)
[](https://github.com/fsprojects/SQLProvider/pulls)# SQLProvider [](https://www.nuget.org/packages/SQLProvider/)
[](https://gitter.im/fsprojects/SQLProvider?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
A general .NET/Mono SQL database type provider. Current features :
* LINQ queries
* Lazy schema exploration
* Automatic constraint navigation
* Individuals
* Transactional CRUD operations with identity support
* Two-way data binding
* Stored Procedures
* Functions
* Packages (Oracle)
* Composable Query integration
* Optional option types
* Mapping to record types
* Custom Operators
* Supports Asynchronous Operations
* Supports .NET Standard / .NET Core
* Supports saving DB schema offline, and SQL-Server *.dacpac files
The provider currently has explicit implementations for the following database vendors :
* SQL Server
* SQLite
* PostgreSQL
* Oracle
* MySQL (& MariaDB)
* MsAccess
* Firebird
* DuckDBThere is also an ODBC provider that will let you connect to any ODBC source with limited features.
## Documentation
[SQLProvider home page](https://fsprojects.github.io/SQLProvider/) contains the core documentation and samples. This
documentation originates from
[docs/content/](https://github.com/fsprojects/SQLProvider/tree/master/docs/content),
so please feel free to submit a pull request if you fix typos or add
additional samples and documentation!## Building
* Mono: Run *build.sh* [](https://travis-ci.org/fsprojects/SQLProvider)
* Windows: Run *build.cmd* [](https://ci.appveyor.com/project/colinbull/sqlprovider-ogy2l/branch/master)## Known issues
- Database vendors other than SQL Server and Access use dynamic assembly loading. This
may cause some security problems depending on your system's configuration and
which version of the .NET framework you are using. If you encounter problems
loading dynamic assemblies, they can likely be resolved by applying the
following element into the configuration files of fsi.exe, devenv.exe and
your program or the program using your library: http://msdn.microsoft.com/en-us/library/dd409252(VS.100).aspx## Example

## Maintainer(s)
- [@pezipink](https://github.com/pezipink)
- [@colinbull](https://github.com/colinbull)
- [@Thorium](https://github.com/Thorium)The default maintainer account for projects under "fsprojects" is [@fsprojectsgit](https://github.com/fsprojectsgit) - F# Community Project Incubation Space (repo management)
## Nuget Packages
| Database | Nuget Package | TypeProvider Class | NuGet Status |
| ------- | ----- | -----------| ---------- |
| Microsoft SQL Server | [SQLProvider.MsSql](https://www.nuget.org/packages/SQLProvider.MsSql) | FSharp.Data.Sql.MsSql.SqlDataProvider | [ ](https://www.nuget.org/packages/SQLProvider.MsSql)
| PostgreSQL | [SQLProvider.PostgreSql](https://www.nuget.org/packages/SQLProvider.PostgreSql) | FSharp.Data.Sql.PostgreSql.SqlDataProvider | [ ](https://www.nuget.org/packages/SQLProvider.PostgreSql)
| MySQL and MariaDB | [SQLProvider.MySqlConnector](https://www.nuget.org/packages/SQLProvider.MySqMySqlConnectorl) | FSharp.Data.Sql.MySqlConnector.SqlDataProvider | [ ](https://www.nuget.org/packages/SQLProvider.MySqMySqlConnectorl)
| MySQL | [SQLProvider.MySql](https://www.nuget.org/packages/SQLProvider.MySql) | FSharp.Data.Sql.MySql.SqlDataProvider | [ ](https://www.nuget.org/packages/SQLProvider.MySql)
| Oracle | [SQLProvider.Oracle](https://www.nuget.org/packages/SQLProvider.Oracle) | FSharp.Data.Sql.Oracle.SqlDataProvider | [ ](https://www.nuget.org/packages/SQLProvider.Oracle)
| Any ODBC connection | [SQLProvider.Odbc](https://www.nuget.org/packages/SQLProvider.Odbc) | FSharp.Data.Sql.Odbc.SqlDataProvider | [ ](https://www.nuget.org/packages/SQLProvider.Odbc)
| SQLite | [SQLProvider.SQLite](https://www.nuget.org/packages/SQLProvider.SQLite) | FSharp.Data.Sql.SQLite.SqlDataProvider | [ ](https://www.nuget.org/packages/SQLProvider.SQLite)
| Microsoft Access | [SQLProvider.MsAccess](https://www.nuget.org/packages/SQLProvider.MsAccess) | FSharp.Data.Sql.MsAccess.SqlDataProvider | [ ](https://www.nuget.org/packages/SQLProvider.MsAccess)
| FireBird | [SQLProvider.FireBird](https://www.nuget.org/packages/SQLProvider.FireBird) | FSharp.Data.Sql.FireBird.SqlDataProvider | [ ](https://www.nuget.org/packages/SQLProvider.FireBird)
| DuckDb | [SQLProvider.DuckDb](https://www.nuget.org/packages/SQLProvider.DuckDb) | FSharp.Data.Sql.DuckDb.SqlDataProvider | [ ](https://www.nuget.org/packages/SQLProvider.DuckDb)
| General, all via manual config | [SQLProvider](https://www.nuget.org/packages/SQLProvider) | FSharp.Data.Sql.SqlDataProvider | [ ](https://www.nuget.org/packages/SQLProvider)Depending on the used provider, the namespace of the SqlDataProvider type class varies as above.