我尝试使用PetaPoco访问PostgreSQL数据库但是我遇到了这个例外:"无法加载PostgreSQLDatabaseProvider DbProviderFactory。"
问题与数据库访问是在与我的Web应用程序不同的程序集中完成的事实有关
因此,为了避免异常,我目前需要加载npgsql的数据库提供程序,不仅在我的DAL程序集中,而且在我的Web应用程序中。
我怎么能避免这种情况?
DAL程序集中的代码:
try
{
using (Database db = new PetaPoco.Database("MyDb"))
{
// things ...
return true;
}
}
catch (Exception ex)
{
// TODO: log exception
return false;
}
Web应用程序的web.config:
<connectionStrings>
<add name="MyDb" connectionString="Server=127.0.0.1;Port=5432;Database=mydatabase;User Id=the_user;Password=the_password;" providerName="Npgsql" />
</connectionStrings>
<system.data>
<DbProviderFactories>
<add name="Npgsql Data Provider" invariant="Npgsql" support="FF" description=".Net Framework Data Provider for Postgresql Server"
type="Npgsql.NpgsqlFactory, Npgsql, Version=3.0.5.0, Culture=neutral, PublicKeyToken=5d8b90d52f46fda7"/>
</DbProviderFactories>
</system.data>