2016-01-26 3 views
2

Я пытаюсь проверить PetaPOCO с базой данных MS Access.PetaPOCO с базой данных MS Access

Строка соединения в web.config

<add name="ConString" connectionString="Provider=Microsoft.Jet.OLEDB.4.0; Data Source=Data.mdb; Persist Security Info=False" providerName="System.Data.Oledb" /> 

Доступ к MS Access database-

var db = new PetaPoco.Database("ConString"); //throws exception here 
var rows = db.Query<Model>("SELECT * FROM Table"); 

Exception thrown-

"Could not match `System.Data.Oledb` to a provider.Parameter name: providerName" 

Есть ли способ сделать это? Если да, то как?

ответ

2

Начиная с версии 5.1.127 или с поддержкой PetaPoco, поддерживается поддержка MS Access и не требуется никакой заказчик.

Пример конфигурационного файла

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <connectionStrings> 
    <clear /> 
    <add name="msaccess" connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|Databases\MSAccess\petapoco.accdb" providerName="OleDb"/> 
    </connectionStrings> 
</configuration> 

Fluent конфигурации

var builder = DatabaseConfiguration.Build().UsingConnectionName("MyConnection"); 

var db = builder.Create(); 

конфигурации Конструктор

var db = new Database("MyConnection"); 
+0

Поскольку он все еще находится в бета-версии, интеграционные тесты можно найти в разделе [dev branch] (https://github.com/CollaboratingPlatypus/PetaPoco/tree/development/PetaPoco.Tests.Integration.x86/Databases/MSAccess) – Plebsori

+0

поставщик доступа не поддерживает пейджинг. Однако все остальные API должны работать. – Plebsori

0

Я думаю, что вы действительно хотите это

using System.Configuration; 

и

var db = new PetaPoco.Database(ConfigurationManager.AppSettings["ConString"]); 
+1

спасибо. Я не думаю, что это сработает. Это проблема, связанная с провайдером. –

1

Как заявил своей документации «работает с SQL Server, SQL Server CE, SQLite, MySQL, MariaDB и PostgreSQL . (Oracle поддерживается, но не имеет интеграционных тестов). «Он не поддерживает MS Access

Чтобы использовать его, вам нужно будет написать собственный провайдер. Образцы поставщиков услуг могут быть найдены here

+0

Спасибо. Я посетил вашу ссылку. Я думаю, что это полезно. Но это продвинутое программирование уровня. Не могли бы вы помочь мне с несколькими фрагментами? Я использую PetaPoco.Core.Compiled из nuget. –

+0

Эй, помощник. Отслеживайте прогресс здесь https://github.com/CollaboratingPlatypus/PetaPoco/issues/246 – Plebsori

+2

Доступ поддерживается в последней бета-версии – Plebsori

Смежные вопросы