SQLite и Entity Framework

Я пытаюсь использовать базу данных SQLITE с последней версией Entity Framework. Я установил поставщика SQLite x86 для .NET Framework 4.0 отсюда: http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki.

Я успешно добавил SQLITE в качестве нового источника данных с помощью обозревателя серверов в Visual Studio 2012. Затем я добавил новую модель объекта ADO.NET и попытался добавить таблицы из моей простой базы данных sqlite. По какой-то причине эти таблицы не могут быть добавлены, и журнал ошибок говорит следующее:

Тип данных longchar в настоящее время не поддерживается для целевой версии .NET Framework; >> столбец «Имя» в таблице «main.Person» был исключен.

Я не понимаю, почему он пытается преобразовать тип SQLite TEXT в longchar и терпит неудачу. Может ли кто-нибудь помочь мне с этой проблемой?


person WonderMike    schedule 20.04.2013    source источник
comment
тип поля в базе данных SQLite - longchar? почему бы не использовать varchar или nvarchar вместо long char?   -  person Álvaro García    schedule 21.04.2013
comment
SQLite практически не имеет типов, потому что типы обрабатываются как строки. Задача провайдера — определить, какой тип следует использовать. По какой-то причине в моем случае провайдер хочет обрабатывать мой тип TEXT как longchar, и в этом проблема.   -  person WonderMike    schedule 22.04.2013


Ответы (2)


Я только что столкнулся с этой проблемой сегодня после настройки среды разработки для проекта, который использует SQLLITE и ADO на работе, и исправление было простым. Версия 1.0.85.0 сломана, а версия 1.0.84.0 работает.

32-битная: http://system.data.sqlite.org/downloads/1.0.84.0/sqlite-netFx40-setup-bundle-x86-2010-1.0.84.0.exe

64-битная: http://system.data.sqlite.org/downloads/1.0.84.0/sqlite-netFx40-setup-bundle-x86-2010-1.0.84.0.exe

При удалении обязательно удаляйте программные файлы для каждой установки, а также при повторной установке скажите установщику, чтобы он перестроил ваш GAC. Должно работать, это была единственная разница между моей и моей машиной для сборки boses, этот веб-сайт должен лучше отображать предыдущие версии.

person Encladius    schedule 29.04.2013
comment
Если я прав, эту версию SQLite можно использовать только с Visual Studio 2010. Я использую 2012, поэтому мне это не поможет. В любом случае спасибо. - person WonderMike; 01.05.2013
comment
Вы можете получить версию 1.0.84.0 для Visual Studio 2012 по адресу system.data.sqlite.org/downloads/1.0.84.0/ - person Chris Woodruff; 02.05.2013
comment
Как ни странно, у меня также были проблемы с Sqlite в VS 2012 после того, как проект был запущен с VS 2010 и установкой версии 1.0.85.0. Я следовал инструкциям пользователя 2333398 и @Chris-Woodruff и установил версию 1.0.84.0, и вуаля все волшебным образом заработало! Спасибо, парни! - person OneSource; 03.05.2013
comment
Спасибо; это сработало и для меня. Спасибо @ChrisWoodruff за ссылку. - person Sam; 23.06.2013

Измените свои таблицы SQLite так, чтобы любые поля TEXT были NVARCHAR (max) вместо этого. Тогда .Net должен правильно их сопоставить.

person Hades    schedule 12.08.2013