LINQ с SQLite (linqtosql)

У меня есть небольшой проект, который требует хранения (я выбираю SQLite), и я получил хороший результат с ADO DLL для .Net для Sqlite.

после установки я заметил, что он содержит SQLLinq.файл DLL. Прежде чем исследовать слишком много усилий, и потому что я не вижу хорошего примера в Интернете, я хотел бы знать, получил ли кто-нибудь хороший результат с SQLite и LINQ?

*Если linqtosql работает так же, как и база данных SQL, дайте мне знать. Я был интересно с Dll, когда я увидел его, потому что я никогда не использую Linqtosql раньше, и я думал, что это будет отличная возможность попробовать,

9 ответов


Я недавно обнаружил DBLinq, который поддерживает SQLite среди других DB:


по моему собственному опыту, Microsoft SQL Compact Framework-это настоящий запрет. Это действительно чертовски медленно, и его анализатор запросов просто очень плохой. Мне пришлось попросить свою команду переписать весь код сантехники моего компонента Windows Mobile, чтобы избавиться от ужасных характеристик SQL CE.


LINQ to SQL поддерживает только SQL Server / Compact, однако возможно, что люди SQLite написали свой собственный поставщик LINQ с именем сборки.

Если это так, вы сможете использовать синтаксис запроса LINQ, добавив к нему ссылку, но вы не получите LINQ для SQL конкретных функций, таких как DataContext/designer/SQL Metal/Column attributes/EntitySet/EntityRef и т. д.


Я знаю, что этот вопрос старый, но в это время, я думаю, мы можем найти официальную реализацию поддержки SQLite для .NET здесь:http://system.data.sqlite.org/index.html/doc/trunk/www/index.wiki. Хорошую вступительную статью можно найти здесь : http://www.codeproject.com/Articles/236918/Using-SQLite-embedded-database-with-entity-framewo


Это не ответ на ваш вопрос как таковой, но в качестве альтернативы вы можете использовать SQL Compact:

http://www.microsoft.com/Sqlserver/2005/en/us/compact.aspx

который имеет хорошую поддержку LINQ-to-SQL и (несмотря на название) отлично подходит для настольных приложений с небольшими требованиями к хранению.


на NuGet есть пакет под названием "LINQ to SQLite". Я еще не пробовал, но кажется свежим.

https://www.nuget.org/packages/linq2db.SQLite/


Это хороший linq для sqlite..

http://www.devart.com/dotconnect/sqlite/


с EntityFramework 7 улучшена поддержка SqLite, и можно использовать EntityFramework.Команды для создания некоторых миграций. Вот учебник:

https://xamlbrewer.wordpress.com/2016/06/01/getting-started-with-sqlite-and-entity-framework-on-uwp/

в качестве предварительного условия должен быть установлен по крайней мере PowerShell3.


Так как DBLinq больше не поддерживается, я продолжал искать и нашел ответ какой вид нечетко указывает на решение, использующее Linq to Sql, Entity Framework и SQLite. The блоге Он ссылается на немного устарел, но с некоторыми настройками я получил рабочий пример на GitHub.

Он должен запускать OOTB в Visual Studio 2013. Он показывает добавление записи (со связанной записью в другой таблице), изменение и удаление. Классы исполнителя и альбома представляют записи в своих соответствующих таблицах (часть Entity Framework, я считаю). Смотрите readme для нескольких gotchas, чтобы следить за.