SQLProvider
SQLProvider copied to clipboard
Suggestion - infer resolution path for script scenario .fsx (MacOs) ?
Describe the bug Would be nice if resolution path would be inferred by .nuget directory of .fsx script automatically... also seems #r "nuget: System.Data.SqlClient" is required else the type throws an exception...
To Reproduce use provider from .fsx script and try reference ngpqslq.dll from current directory
#r "nuget: SQLProvider"
#r "nuget: System.Data.SqlClient"
#r "nuget: Npgsql"
open FSharp.Data.Sql
open System
open Npgsql
//docker run --name posttest -d -p 5432:5432 -e POSTGRES_PASSWORD=password postgres:alpine
let [<Literal>] dbVendor =
Common.DatabaseProviderTypes.POSTGRESQL
let [<Literal>] connString =
"Host=127.0.0.1;Database=postgres;Username=postgres;Password=password;Port=5432"
let [<Literal>] resPath = __SOURCE_DIRECTORY__
// add npgsql.dll locally
type sql = SqlDataProvider<DatabaseVendor=dbVendor, ConnectionString=connString, ResolutionPath=resPath>
Expected behavior Would be nice not to need the resolution path when using the type provider from scripts using
#r "nuget : SQLProvider"
Desktop (please complete the following information):
- Device: MAC
- OS: MacOS
This is a great idea, but how do we know the path of that DLL? With '#r' the FSI loads the SQLProvider then from nuget cache, but SQLProvider loads Npgsql via reflection, so we'd need to know the path and thus e.g. which version we are loading.
It seems to me that FSI creates some kind of temporary project in some location %home%\.packagemanagement\nuget\Projects\(guid)