Я новичок как в F #, так и в мире .Net, я пытаюсь заставить этот сценарий F # работать:
#r "./packages/SQLProvider/lib/netstandard2.0/FSharp.Data.SqlProvider.dll"
#r "./packages/SQLProvider/lib/netstandard2.0/netstandard.dll"
#r "./packages/Npgsql/lib/netstandard2.0/Npgsql.dll"
open FSharp.Data.Sql
open Npgsql
let [<Literal>] ConnString =
"Host=localhost;" +
"Port=5431;" +
"Database=suavetododb;" +
"Username=postgres;" +
"Password=postgres"
let [<Literal>] DbVendor = Common.DatabaseProviderTypes.POSTGRESQL
let [<Literal>] ResPath = @"./packages/Npgsql/lib/netstandard2.0"
type Sql =
SqlDataProvider<
DbVendor,
ConnString,
"",
ResPath,
1000,
true>
Это ошибка, которую я получаю:
ошибка FS3033: поставщик типа 'FSharp.Data.Sql.SqlTypeProvider' сообщил об ошибке: не удалось разрешить маркер поля 0x04000523 из-за: не удалось загрузить тип поля 'Npgsql.NpgsqlConnection + d__28: <> u__2' (7) из-за: не удалось загрузить файл или сборку 'System.Threading.Tasks.Extensions, версия = 4.1.0.0, культура = нейтральная, PublicKeyToken = cc7b13ffcd2ddd51' или одна из ее зависимостей.сборка: System.Threading.Tasks.Extensions, версия = 4.1.0.0, культура = нейтральная, PublicKeyToken = cc7b13ffcd2ddd51 тип: член: (ноль) подпись: сборка: (my_filesystem) /API/packages/Npgsql/lib/netstandard2.0/Npgsql.dll тип: d__28 член: (ноль) подпись:
Что странно, поскольку Npgsql
фактически импортировано (поэтому последний #r
фактически работает).
База данных работает через докер:
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4704763ec2ba suave_rezoom_db:0.1 "docker-entrypoint.s…" 25 hours ago Up 2 hours 0.0.0.0:5431->5432/tcp todo_rezoom_1
Кроме того, проект был создан с помощью .Net Core 2.1.200 и работает в Linux.