Это делается с помощью Petapocoo 5.1.228
Если вы добавили его с помощью nuget, у вас есть раздел в Project-> Models-> Generated.в этом разделе у вас будут файлы .tt и .ttinclude
Один из них называется Database.tt, после запуска будут созданы объекты с базовым декорированием или тем, что вы настроили.В этом у вас есть в верхней части раздел «Настройки с параметром ConnectionStringName
».У этого есть комментарий, который говорит "// Uses last connection string in config if not specified
".Это означает, что если вы не настроите ConnectionStringName в файле web.config
, он будет иметь значение lase.Поэтому, чтобы настроить его,
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.Включите это, как добавить и проверить DataProvider в GAC.И если у вас установлен правильный набор драйверов.
Еще одно слово о Database.tt: есть настройки, которые вы можете использовать для настройки сгенерированных POCO в каких пространствах имен, хочу ли я заполнить полную базу данных или исключить что ... проверить это!: P
Вернувшись в бизнес, как только вы настроили database.tt, щелкните правой кнопкой мыши и запустите пользовательский инструмент.В случае успеха у вас будет Database.cs по тому же пути, что и database.tt.в случае ошибки у вас будет тот же результат с исключением для поиска.
Сгенерированный файл будет содержать все POCO и пространства имен, необходимые для начала использования Petapoco ....
в моем случае,
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
Надеюсь, это поможет решить вашу проблему.