Я использую System.Data.SQLite для доступа к базе данных SQLite через С#/linq. У меня не было проблем, пока я не попытался использовать функцию Take()/Skip(), которая вызвала исключение. Сообщение об ошибке в случае Take(): «Ошибка SQLite рядом с «.»: синтаксическая ошибка». Любые идеи, что я мог бы сделать, чтобы обойти это?
Linq + SQLite + Take() == Проблема
Ответы (2)
возможно, вам нужен DBLinq http://code.google.com/p/dblinq2007/
person
dan_l
schedule
30.06.2011
Какое место во всем этом занимает DBLinq? Кажется, он использует System.Data.SQLite, но, может быть, он делает собственное преобразование LINQ в SQL?
- person B_old; 30.06.2011
У меня была такая же проблема с использованием VS2008 SP1, System.Data.Sqlite.Linq v2.0.38.0
и System.Data.Sqlite v1.0.66.0
.
Решил аналогичную ошибку (с LINQ Skip
), раскомментировав раздел DbProviderFactories
в 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>
(Я работаю со старым проектом VS2008 после переустановки ОС, и мне пришлось переустановить все зависимости, я думаю, что я не устанавливал те же точные версии Sqlite, которые у меня были. Это всегда работало с комментарием этого раздела app.config)
person
Ivan Ferrer Villa
schedule
15.06.2017
У меня тоже сработало, .net framework 4.8, C# 8 активирован. Установлен новейший пакет System.Data.SQLite.Linq NuGet. Во всяком случае, после удаления пакета NeGet он работал без app.config. Я предполагаю, что этот пакет не нужен в текущих фреймворках, а пакет nuget сбил систему с толку.
- person Martini Bianco; 14.10.2019
ObjectQuery
и вызватьToTraceString
) или просто спросить в форум SQLite - сопровождающие не следят за SO регулярно. - person Stephen Cleary   schedule 01.07.2011