2013-04-20 4 views
3

최신 Entity Framework에서 SQLite 데이터베이스를 사용하려고합니다. .NET Framework 4.0 용 SQLite 공급자 x86을 여기에서 (http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki) 설치했습니다.SQLite 및 Entity Framework

Visual Studio 2012에서 서버 탐색기를 사용하여 SQLite를 새 데이터 원본으로 성공적으로 추가했습니다. 그런 다음 새 ADO.NET 엔터티 모델을 추가하고 간단한 sqlite 데이터베이스에서 테이블을 추가하려고했습니다. 어떤 이유로 이러한 테이블을 추가 할 수 없습니다 및 오류 로그는 다음 말한다 :

'LONGCHAR은'현재 대상 .NET Framework 버전이 지원되지 않습니다 데이터 유형; >> 'main.Person'테이블의 'Name'열이 제외되었습니다. 이 LONGCHAR과 실패하는 SQLite는 텍스트 형식으로 변환하려고하는 이유

은 이해 해달라고. 누구든지이 문제를 도와 줄 수 있습니까?

+0

SQLite 데이터베이스의 필드 유형이 longchar입니까? 긴 char 대신 varchar 또는 nvarchar를 사용하지 않는 이유는 무엇입니까? –

+0

타입은 문자열로 처리되기 때문에 SQLite는 사실상 타입이 없습니다. 어떤 유형을 사용해야하는지 결정하는 것은 공급자의 직업입니다. 어떤 경우 든 내 경우에 공급자가 longchar으로 텍스트 형식을 처리하려고하는데 이것이 문제입니다. – WonderMike

답변

4

직장에서 SQLLITE 및 ADO를 사용하는 프로젝트의 개발 환경을 설정 한 후이 문제가 발생했습니다.이 수정은 간단했습니다. 버전 1.0.85.0이 손상되고 버전 1.0.84.0이 작동합니다.

32 BIT : http://system.data.sqlite.org/downloads/1.0.84.0/sqlite-netFx40-setup-bundle-x86-2010-1.0.84.0.exe

64 BIT : http://system.data.sqlite.org/downloads/1.0.84.0/sqlite-netFx40-setup-bundle-x86-2010-1.0.84.0.exe

제거하여 GAC를 재 구축하는 설치 프로그램에게 각각 설치하고이 경우에도 다시 설치를위한 프로그램 파일을 삭제해야합니다. 내 보스와 보스 사이의 유일한 차이점이라면 그 웹 사이트는 이전 버전을 더 잘 나열해야합니다.

+0

내가 맞다면 SQLite의 해당 버전은 Visual Studio 2010에서만 사용할 수 있습니다. 따라서 2012 년을 사용하고 있으므로 도움이되지 않을 것입니다. 어쨌든 고마워. – WonderMike

+2

Visual Studio 2012 용 1.0.84.0 버전은 http://system.data.sqlite.org/downloads/1.0.84.0/sqlite-netFx45-setup-bundle-x86-2012-1.0.84.0.exe –

+0

에서 구할 수 있습니다. 이상하게도, 프로젝트가 VS 2010으로 시작되고 버전 1.0.85.0을 설치 한 후 VS 2012에서 Sqlite 관련 문제가 발생했습니다. user2333398과 @ Chris-Woodruff의 지시 사항을 따르고 버전 1.0.84.0과 ** voila **를 설치했습니다. 마술처럼 모든 것이 작동하는 것을 보았습니다! 고마워! – OneSource

0

모든 TEXT 필드가 NVARCHAR (max)가되도록 SQLite 테이블을 변경하십시오. . 닷넷 그들을 올바르게 매핑해야합니다.