SkillAgentSearch skills...

SQLProvider

A general F# SQL database erasing type provider, supporting LINQ queries, schema exploration, individuals, CRUD operations and much more besides.

Install / Use

/learn @fsprojects/SQLProvider

README

Issue Status PR Status

SQLProvider NuGet Status

Join the chat at https://gitter.im/fsprojects/SQLProvider

A general .NET 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
  • DuckDB

There is also an ODBC provider that will let you connect to any ODBC source with limited features.

Documentation

SQLProvider home page contains the core documentation and samples. This documentation originates from docs/content/, so please feel free to submit a pull request if you fix typos or add additional samples and documentation!

Building Build status

  • Linux/macOS: Run build.sh
  • Windows: Run build.cmd

(Note: both scripts above use the dotnet command underneath; if you need to build with .NETFramework v4.x or Mono, rename the '.paket_netfx' to '.paket' first, before restoring & building manually with paket and msbuild.)

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

No OR-mapping: FSharp compiles your database to .NET-types.

Maintainer(s)

The default maintainer account for projects under "fsprojects" is @fsprojectsgit - F# Community Project Incubation Space (repo management)

Nuget Packages

| Database | Nuget Package | TypeProvider Class | NuGet Status | | ------- | ----- | -----------| ---------- | | Microsoft SQL Server | SQLProvider.MsSql | FSharp.Data.Sql.MsSql.SqlDataProvider | Nuget Nuget | PostgreSQL | SQLProvider.PostgreSql | FSharp.Data.Sql.PostgreSql.SqlDataProvider | Nuget Nuget | MySQL and MariaDB | SQLProvider.MySqlConnector | FSharp.Data.Sql.MySqlConnector.SqlDataProvider | Nuget Nuget | MySQL | SQLProvider.MySql | FSharp.Data.Sql.MySql.SqlDataProvider | Nuget Nuget | Oracle | SQLProvider.Oracle | FSharp.Data.Sql.Oracle.SqlDataProvider | Nuget Nuget | Any ODBC connection | SQLProvider.Odbc | FSharp.Data.Sql.Odbc.SqlDataProvider | Nuget Nuget | SQLite | SQLProvider.SQLite | FSharp.Data.Sql.SQLite.SqlDataProvider | Nuget Nuget | Microsoft Access | SQLProvider.MsAccess | FSharp.Data.Sql.MsAccess.SqlDataProvider | Nuget Nuget | Firebird | SQLProvider.Firebird | FSharp.Data.Sql.Firebird.SqlDataProvider | Nuget Nuget | DuckDb | SQLProvider.DuckDb | FSharp.Data.Sql.DuckDb.SqlDataProvider | Nuget Nuget | General, all via manual config | SQLProvider | FSharp.Data.Sql.SqlDataProvider | Nuget Nuget

Depending on the used provider, the namespace of the SqlDataProvider type class varies as above.

View on GitHub
GitHub Stars624
CategoryData
Updated19h ago
Forks149

Languages

F#

Security Score

85/100

Audited on Apr 1, 2026

No findings