В прошлом году я очень успешно использовал SubSonic 3 и SQLite в проекте VS2008 и был очень доволен результатами.Совсем недавно я попытался настроить SubSonic 3 и SQLite в проекте VS2010 и встретил внутреннее исключение при попытке создать новый SimpleRepository:
Инициализатор типа для System.Data.SQLite.SQLiteFactory 'выдал исключение
Чтобы убедиться, что я не схожу с ума, я попробовал точно такой же код и файл app.config в VS2008, и никаких проблем.Странно!
В настоящее время я использую SubSonic 3.0.0.4 и x64-версию System.Data.SQLite 1.0.73.0 (3.7.6.3) (хотя я также пробовал 32-битную версию). Я добавилобе библиотеки DLL в качестве ссылки и установите «Копировать локальный» на TRUE.
Мой App.Config выглядит так:
<system.data>
<DbProviderFactories>
<remove invariant="System.Data.SQLite" />
<add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".Net Framework Data Provider for SQLite"
type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" />
</DbProviderFactories>
</system.data>
<connectionStrings>
<add name="myDatabase" connectionString="Data Source=C:\DB\mydatabase.db3" providerName="System.Data.SQLite"/>
</connectionStrings>
А мой код выглядит так:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SubSonic.Repository;
namespace SubSonicSqliteTestConsole
{
class Program
{
static void Main(string[] args)
{
var repo = new SimpleRepository("myDatabase", SimpleRepositoryOptions.RunMigrations);
}
}
}
Есть идеи?