Как настроить DbContext из NpgSqlConnection - PullRequest
0 голосов
/ 27 марта 2020

У меня есть база данных postgres на удаленном компьютере с сервером postgres, к которому я подключаюсь с помощью SshClient

using (var client = new SshClient("<public ip>", <port>, "<myuser>", "<mypassword>"))
{
    client.Connect();

    var port = new ForwardedPortLocal("localhost", 5432, "10.0.0.5", 5432);
    client.AddForwardedPort(port);

    port.Start();

    using (var conn = new NpgsqlConnection("Server=localhost;Database=<secret>;Port=5432;User Id=postgres;Password=<secret>;"))
    {
        conn.Open();
    }

    port.Stop();
    client.Disconnect();
}

Могу ли я создать DbContext из объекта NpgsqlConnection? Я спрашиваю, потому что я хотел бы запустить scaffolding и все другие обычные вещи, запросы, команды и т. Д. c

1 Ответ

0 голосов
/ 29 марта 2020

Краткий ответ, нет. Вы смешиваете технологии доступа к данным. Тип NpgsqlConnection используется, когда вы хотите использовать ADO. NET Технология . Entity Framework - это еще одна технология, которую вы можете использовать для доступа к данным, и она использует тип DbContext. Вам нужно решить, какую технологию использовать.

Моя рекомендация, если вы хотите генерировать сущности и выполнять запросы Linq to SQL, - это использовать Entity Framework. Entity Framework предоставляет инструменты, которые можно использовать для создания базы данных, а документацию для набора инструментов Entity Framework Core можно найти здесь . После установки пакета Npgsql.EntityFrameworkCore.PostgreSQL nuget вы можете запустить следующую команду Scaffold:

Scaffold-DbContext "Host=my_host;Database=my_db;Username=my_user;Password=my_pw" Npgsql.EntityFrameworkCore.PostgreSQL

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...