LINQ с SQLite (linqtosql)

56

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

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

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

Теги:
linq
linq-to-sql

9 ответов

50
Лучший ответ

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

  • 0
    это должен быть ответ, это единственный найденный LINQ <-> SQLite, который выглядит хорошо
  • 2
    За исключением того, что это все еще в CTP.
Показать ещё 4 комментария
10

Из моего собственного опыта Microsoft SQL Compact Framework является REAL NO-GO. Это ДЕЙСТВИТЕЛЬНО FREAKING медленно, и его Query Analyzer просто очень беден. Я должен был попросить мою команду переписать весь код сантехники моего компонента Windows Mobile, чтобы избавиться от ужасных характеристик SQL CE.

  • 2
    Я на 100% согласен --- CE - это кусок мусора ... следовательно, почему я ищу альтернативу (SqlLite) - Не начинайте меня с того, почему это так плохо ... просто не используйте его в любой многопоточной среде большого объема.
8

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

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

  • 0
    Хорошо, спасибо за информацию. Я отмечу вас как ответ, если к концу дня ни у кого нет лучшего ответа! +1
4

Я знаю, что этот вопрос старый, но в это время я думаю, что мы можем найти официальную реализацию поддержки 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

3

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

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

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

  • 1
    +1 Я буду держать Sqlite, но ты научишь меня чему-то новому с Compact!
  • 0
    У которого есть новая версия (2008) microsoft.com/sqlserver/2008/en/us/compact.aspx
Показать ещё 1 комментарий
2

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

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

1

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

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

В качестве предпосылки необходимо установить как минимум PowerShell3.

1

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

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

0

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню