Только что сделал новое консольное приложение для тестовой базы данных. В прошлом мои проекты работали нормально, но теперь у меня есть проблема, которую я не могу решить. Я создал App.config вручную (VStudio не генерировал его). Я использовал настройки от Эта ссылка . В прошлом я работал с MSSql и SQLite, и он отлично работает. Но моя попытка с Postgresql не работает. Можете ли вы сказать мне, что я должен делать?
Мой App.config Файл:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<!-- ... -->
<entityFramework>
<providers>
<provider invariantName="Npgsql"
type="Npgsql.NpgsqlServices, EntityFramework6.Npgsql" />
</providers>
</entityFramework>
<system.data>
<DbProviderFactories>
<add name="Npgsql Data Provider"
invariant="Npgsql"
description="Data Provider for PostgreSQL"
type="Npgsql.NpgsqlFactory, Npgsql"
support="FF" />
</DbProviderFactories>
</system.data>
<connectionStrings>
<add name="AppDatabaseConnectionString"
connectionString="Server=localhost;Database=photo_service;Port=5432;Password=postgres;User Id=postgres"
providerName="Npgsql" />
</connectionStrings>
</configuration>
Моя База данных приложений: контекст и класс Пользователь
class AppDatabase : DbContext
{
private readonly string schema;
public AppDatabase(string schema) : base("AppDatabaseConnectionString")
{
this.schema = schema;
}
public DbSet<User> Users { get; set; }
protected override void OnModelCreating(DbModelBuilder builder)
{
builder.HasDefaultSchema(this.schema);
base.OnModelCreating(builder);
}
}
class User
{
public int id { get; set; }
public string name { get; set; }
public string number { get; set; }
}
И, наконец, моя инициализация запроса postgres:
var db = new AppDatabase("Users");
using (var database = new AppDatabase("User"))
{
var users = database.Users.First(user => user.name == "Blah blah blah");
}
все это дает мне ошибку:
Unable to determine the provider name for provider factory of type
'System.Data.SqlClient.SqlClientFactory'. Make sure that the ADO.NET provider is
installed or registered in the application config.'