SQLite 용 .NET / C # 래퍼가 있습니까? [닫은]


267

C # .Net에서 SQLite를 사용하고 싶지만 적절한 라이브러리를 찾을 수없는 것 같습니다. 하나 있습니까? 공식적인 사람? 랩퍼가 아닌 SQLite를 사용하는 다른 방법이 있습니까?


4
이것은 stackoverflow.com/questions/26020/…라는 질문과 중복 되며 다른 답변이 있습니다.
스튜어트 존슨

2
실제로, 나는 두 대답 모두 동일한 프로젝트에 연결되어 있다고 생각합니다.
Colin

답변:


328

에서 https://system.data.sqlite.org :

System.Data.SQLite는 SQLite 용 ADO.NET 어댑터입니다.

System.Data.SQLite는 Robert Simpson에 의해 시작되었습니다. Robert는 여전히이 저장소에 대한 커미트 권한이 있지만 더 이상 활성 컨트 리뷰 터가 아닙니다. 개발 및 유지 관리 작업은 이제 대부분 SQLite 개발 팀에서 수행합니다. SQLite 팀은 System.Data.SQLite를 장기적으로 지원하기 위해 노력하고 있습니다.

"System.Data.SQLite는 원본 SQLite 데이터베이스 엔진이며 완전한 ADO.NET 2.0 공급자는 모두 단일 혼합 모드 어셈블리로 롤업되었습니다. 원본 sqlite3.dll을 완전히 대체 할 수있는 파일입니다. 일반적인 혼합 어셈블리와 달리 .NET 런타임에 링커 종속성이 없으므로 .NET과 독립적으로 배포 할 수 있습니다. "

심지어 모노를 지원합니다.


33
이것은 오래된 질문이지만 내 $ 0.02를 추가해야했습니다. System.Data.SQLite 락. 초 정제, 안정 및 상용 등급의 ​​품질입니다. 무엇보다도 100 % 관리 코드이며 공개 소스 코드로 공개되었습니다.
Nathan Ridley

4
사람들이 서로 다른 것에 대해 이야기하고 있기 때문에 일관성을 위해. sqlite.phxsoftware.com에서는 다운로드를 위해 sourceforge.net/projects/sqlite-dotnet2를 가리 킵니다.
yeyeyerman

16
이 래퍼는 원래 작성자가 더 이상 개발하지 않으며 SQLite 자체가 개발을 대신 한 것으로 보입니다. 새 사이트는 system.data.sqlite.org에 있지만, 현재는 원래 사이트에 비해 사용자 친화적이고 진행중인 작업이 많습니다.
mikel

5
@NathanRidley-이 답변에 "System.Data.SQLite는 원본 SQLite 데이터베이스 엔진이며 완전한 ADO.NET 2.0 공급자는 모두 단일 혼합 모드 어셈블리로 롤백되었습니다."
logicnp

2
참고로, Microsoft의 Microsoft.Data.Sqlite .NET Standard Nuget 패키지를 사용해 보았지만 AsyncPoco Github 라이브러리의 소수의 통합 테스트에서 실패했습니다. System.Data.SQLite로 전환 한 후 모든 것이 완벽하게 작동했습니다.
Lee Grissom



15

sqlite.org의 사람들은 ADO.NET 공급자의 개발을 인수했습니다.

에서 홈페이지 :

이것은 System.Data.SQLite로 알려진 SQLite 용으로 널리 사용되는 ADO.NET 4.0 어댑터의 포크입니다. System.Data.SQLite의 작성자 인 Robert Simpson은이 포크를 알고 있으며 그의 승인을 표명했으며 새로운 Fossil 저장소에 대한 권한을 커밋했습니다. SQLite 개발 팀은 System.Data.SQLite를 계속 발전 시키려고합니다.

원래 지원 포럼뿐만 아니라 이전 버전도 여전히 http://sqlite.phxsoftware.com 에서 찾을 수 있지만 2010 년 4 월 이후이 버전에 대한 업데이트는 없습니다.

전체 기능 목록은 위키 에서 찾을 수 있습니다 . 주요 내용은 다음과 같습니다.

  • ADO.NET 2.0 지원
  • 완전한 엔티티 프레임 워크 지원
  • 완벽한 모노 지원
  • Visual Studio 2005/2008 디자인 타임 지원
  • 컴팩트 프레임 워크, C / C ++ 지원

릴리스 된 DLL은 사이트 에서 직접 다운로드 할 수 있습니다 .


기성품 DLL 사용 가능
zomf 5

8

필자는 System.Data.SQLite 와 함께 갈 것입니다 (이전에 언급 한 것처럼 : http://sqlite.phxsoftware.com/ )

ADO.NET (System.Data. *)과 일관성이 있으며 단일 DLL로 컴파일됩니다. sqlite3.dll 없음-SQLite의 C 코드가 System.Data.SQLite.dll에 포함되어 있기 때문입니다. 약간의 관리되는 C ++ 마법.


링크는 현재 404
SqlACID

7

sqlite-net 은 .NET 및 Mono 애플리케이션이 SQLite 3 데이터베이스에 데이터를 저장할 수 있도록하는 오픈 소스, 최소 라이브러리 입니다. 위키 페이지 에서 추가 정보 있습니다.

C #으로 작성되었으며 프로젝트와 함께 간단하게 컴파일됩니다. 처음에는 iPhone에서 MonoTouch와 함께 작동하도록 설계되었지만 모든 플랫폼 (Android, .NET, Silverlight, WP7, WinRT, Azure 등)에서 작동하도록 성장했습니다.

그것은으로 사용할 수 있습니다 Nuget 패키지 2014 년 현재 60,000 회 이상 다운로드 된 두 번째로 인기있는 SQLite 패키지입니다.

sqlite-net은 빠르고 편리한 데이터베이스 계층으로 설계되었습니다. 디자인은 다음과 같은 목표를 따릅니다.

  • 기존 프로젝트 및 MonoTouch 프로젝트와의 통합이 매우 쉽습니다.
  • SQLite에 대한 얇은 래퍼이며 빠르고 효율적이어야합니다. 라이브러리는 쿼리 성능 병목 현상이 없어야합니다.
  • CRUD 작업 및 쿼리를 안전하게 실행하고 (매개 변수 사용) 매우 정확한 형식으로 쿼리 결과를 검색하는 매우 간단한 방법입니다.
  • 클래스를 변경하지 않고도 데이터 모델과 함께 사용할 수 있습니다. (반사 주도형 ORM 레이어를 포함합니다.)
  • sqlite2 라이브러리의 컴파일 된 형태를 제외하고 0 개의 종속성.

비 목표는 다음과 같습니다.

  • ADO.NET 구현이 아닙니다 . 이것은 완전한 SQLite 드라이버가 아닙니다. 필요한 경우 System.Data.SQLite를 사용하십시오.

2014 이전의 의견 대부분이 Windows 스토어 앱에 설치하려고 시도한 System.Data.SQLite (작동하지 않음)를 언급 한 것으로 나타났습니다. Sqlite-net이 작동합니다.
JeeShen Lee

2

모노는 래퍼와 함께 제공됩니다. https://github.com/mono/mono/tree/master/mcs/class/Mono.Data.Sqlite/Mono.Data.Sqlite_2.0 은 실제 SQLite dll ( http : //www.sqlite. org / sqlite-shell-win32-x86-3071300.zip 은 다운로드 페이지 ( http://www.sqlite.org/download.html/ )에서 .net 친화적 인 방법으로 제공됩니다. Linux 또는 Windows에서 작동합니다.

이것은 모든 세계에서 가장 얇은 것처럼 보이며 타사 라이브러리에 대한 의존도를 최소화합니다. 이 프로젝트를 처음부터 시작해야한다면 이것이 내가하는 방식입니다.


2

Microsoft.Data.Sqlite

Microsoft는 이제 Microsoft.Data.Sqlite 를 ASP.NET Core의 일부로 제공되는 .NET 용 자사 SQLite 솔루션으로 제공합니다. 라이센스는 Apache 라이센스, 버전 2.0 입니다.

* 면책 조항 : 사실 난 아직이 나 자신을 사용하여 시도하지 않은,하지만 마이크로 소프트 문서에 제공된 일부 문서가 여기에 .NET 코어 및 UWP와 함께 사용하는가.


2

ADO.NET이 필요하지 않거나 원하지 않는 나, SQLite에 더 가까운 코드를 실행해야하지만 여전히 netstandard(.net 프레임 워크, .net 코어 등) 과 호환되는 사람들을 위해 SQLNado 라는 100 % 무료 오픈 소스 프로젝트 github에서 사용할 수있는 ( "ADO 아님") :

https://github.com/smourier/SQLNado

https://www.nuget.org/packages/SqlNado 에서 너겟으로 사용할 수 있습니다. 제공되지만 단일 .cs 파일로도 제공되므로 모든 C # 프로젝트 유형에서 사용하는 것이 매우 실용적입니다.

SQL 명령을 사용할 때 모든 SQLite 기능을 지원하고 .NET을 통해 대부분의 SQLite 기능을 지원합니다.

  • 자동 클래스-테이블 맵핑 (저장, 삭제,로드, LoadAll, LoadByPrimaryKey, LoadByForeignKey 등)
  • 클래스와 기존 테이블 간의 스키마 (테이블, 열) 자동 동기화
  • 스레드 안전 작동을 위해 설계
  • 데이터 정렬 지원과 함께 LINQ / IQueryable .NET 표현식이 지원되는 위치 및 OrderBy (IQ 작업 가능)
  • .NET에 노출 된 SQLite 데이터베이스 스키마 (테이블, 열 등)
  • SQLite 커스텀 함수는 .NET으로 작성 가능
  • 높은 메모리 소비를 피하기 위해 SQLite 증분 BLOB I / O가 .NET 스트림으로 노출됨
  • .NET 코드를 사용하여 사용자 정의 데이터 정렬을 추가하는 기능을 포함한 SQLite 데이터 정렬 지원
  • .NET 코드를 사용하여 사용자 지정 FTS3 토크 나이저 (예 : 현지화 된 중지 단어)를 추가 할 수있는 기능을 포함하여 SQLite 전체 텍스트 검색 엔진 (FTS3) 지원. 다른 .NET 래퍼는 그렇게 생각하지 않습니다.
  • 이진 종속 파일의 배송피하기 위해 Windows 'winsqlite3.dll'에 대한 자동 지원 (최근 Windows 버전에서만) . 이것은 Azure 웹앱에서도 작동합니다!.


0

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

dotite for SQLite는 SQLite 기반 데이터베이스 응용 프로그램 개발을위한 완벽한 솔루션을 제공하기 위해 ADO.NET 기술을 기반으로하는 SQLite 용 고급 데이터 공급자입니다. Devart 데이터베이스 애플리케이션 개발 프레임 워크의 일부로 dotConnect for SQLite는 SQLite 데이터베이스에 대한 고성능 기본 연결 기능과 여러 혁신적인 개발 도구 및 기술을 모두 제공합니다.

SQLite 용 dotConnect는 애플리케이션 아키텍처 설계를위한 새로운 접근 방식을 도입하고 생산성을 높이며 데이터베이스 애플리케이션 구현을 활용합니다.

나는 표준 버전을 사용합니다. 완벽하게 작동합니다 :)


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.