我根本不擅长建立项目。我正在VS中使用ASP.NET和MVC框架的应用程序。我想使用Postgresql数据库,并在我的Petapoco项目中使用它。我已经尝试了所有方法,并添加了连接字符串,但无法使其正常工作。
答案 0 :(得分:1)
这是通过Petapocoo 5.1.228完成的
如果您将其与nuget添加在一起,则在Project-> Models-> Generated中会有一个部分。 在本节中,您将拥有.tt和.ttinclude文件
一个名为Database.tt的文件,运行后将创建具有所需基本装饰或设置内容的对象。在这一部分中,您靠近顶部的位置是带有ConnectionStringName
参数的“设置”部分。这个人有一条评论说“ // Uses last connection string in config if not specified
”。这意味着,如果您未在web.config
文件中设置ConnectionStringName,它将采用第一种。因此,对其进行配置,
ConnectionStringName = "NorthwindConnection"; //this is my example using Northwind
然后在web.config中:
<add name="NorthwindConnection" connectionString="data source=.;Initial
Catalog=Northwind;Integrated Security=SSPI;" providerName="System.Data.SqlClient" />
然后,如果您在使用DataProviders时遇到任何问题...请阅读PetaPoco.Core.tt中的文档,其中包括如何在GAC中添加和检查DataProvider。并且,如果您安装了正确的驱动程序集。
关于Database.tt的另一种说法是,可以使用一些设置来调整生成的POCO的名称空间,我想要完整的数据库还是排除哪些内容……检查出来! :P
重新开展业务,右键单击“ database.tt”,右键单击,然后运行“运行自定义”工具即可完成工作。成功后,您将在与database.tt相同的路径下拥有一个Database.cs。如果出错,您将得到相同的结果,但需要查找的异常除外。
生成的文件将包含开始使用Petapoco所需的所有POCO和名称空间。...
就我而言
using NorthwindConnection;
另外
public IEnumerable<Customer> GetCustomers()
{
var db = new PetaPoco.Database("NorthwindConnection");
return db.Query<Customer>("SELECT * FROM Customers");
}
允许我检索所有客户。
编辑:数据提供程序或驱动程序连接故障:检查PetaPoco.Core.ttinclude:
In order to work, the appropriate driver must be registered in the system machine.config file. If you're
using Visual Studio 2010 the file you want is here:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\machine.config
After making changes to machine.config you will also need to restart Visual Studio.
Here's a typical set of entries that might help if you're stuck:
<system.data>
<DbProviderFactories>
<add name="Odbc Data Provider" invariant="System.Data.Odbc" description=".Net Framework Data Provider for Odbc" type="System.Data.Odbc.OdbcFactory, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<add name="OleDb Data Provider" invariant="System.Data.OleDb" description=".Net Framework Data Provider for OleDb" type="System.Data.OleDb.OleDbFactory, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<add name="OracleClient Data Provider" invariant="System.Data.OracleClient" description=".Net Framework Data Provider for Oracle" type="System.Data.OracleClient.OracleClientFactory, System.Data.OracleClient, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<add name="SqlClient Data Provider" invariant="System.Data.SqlClient" description=".Net Framework Data Provider for SqlServer" type="System.Data.SqlClient.SqlClientFactory, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.3.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"/>
<add name="Microsoft SQL Server Compact Data Provider" invariant="System.Data.SqlServerCe.3.5" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=3.5.1.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/><add name="Microsoft SQL Server Compact Data Provider 4.0" invariant="System.Data.SqlServerCe.4.0" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/>
<add name="Npgsql Data Provider" invariant="Npgsql" support="FF" description=".Net Framework Data Provider for Postgresql Server" type="Npgsql.NpgsqlFactory, Npgsql, Version=2.0.11.91, Culture=neutral, PublicKeyToken=5d8b90d52f46fda7" />
</DbProviderFactories>
</system.data>
Also, the providers and their dependencies need to be installed to GAC.
Eg; this is how I installed the drivers for PostgreSQL
gacutil /i Npgsql.dll
gacutil /i Mono.Security.dll
希望这有助于解决您的问题。