Да, это была попытка, без особых успехов.
Радужные перспективы малых веб-приложений, с собственным SQL-движком, мощными запросами на LINQ to Entities и "рисованием" красивых моделей баз данных, пропали по одной простой причине.
По порядку: Есть база SQLite (которая представляет из себя файл с расширением *.db), сборка System.Data.SQLite (собственно сам движок базы данных) и Visual Studio (2008).
Поскольку сборка движка реализует DbProviderFactory, то я без труда создал провайдер базы, соединение и набросал несколько стандартных запросов чтения, вставки, обновления и удаления (CRUD). Работает!
Но это вчерашний день, поскольку писать SQL-запросы "ручками", как-то неинтересно.
Поэтому добавил в проект модель ADO.NET EDM. Мастер создания модели запросил подключение к базе, я создал ему SQLite поставщика. Мастер сказал "ОК, давай файл с базой данных". Указал путь. И мастер без проблем накидал мне красивые таблицы и связи в визуальном редакторе. Красота.
Теперь, у меня все таблицы в базе, представлены классами. Всё компилируется. Накидал наши стандартные запросы, используя технологию LINQ to Entities. Теперь, всю "черную" работу (создание подключения, транзакции, длинные SQL-запросы, запихивание результатов в классы) сделает за меня эта самая технология.
Но мне пришлось идти в сад, по воле разработчиков из Майкрософт, поскольку всё, чего я мог добиться, это только читать базу. Остальное ну никак не хотело работать.
Причина кроется в весьма сомнительном классе ObjectStateManager. На все попытки вставить/обновить/удалить он отвечает, что мол, ок, успешно! Но в базе ничего не меняет, мерзавец, негодяй...
Короче, возвращаясь во вчерашний день, пишу соединения, связывания и SQL-запросы вручную (под ржанье PHP-скрипачей).
Найдется время, скачаю .NET Reflector для "раскопок" сборки System.Data, чтобы понять, какого хрена, класс ObjectStateManager, не желает работать с движком SQLite.