Có một trình bao bọc .NET / C # cho SQLite không? [đóng cửa]


267

Tôi muốn sử dụng SQLite từ bên trong C # .Net, nhưng dường như tôi không thể tìm thấy một thư viện thích hợp. Có một cái không? Một chính thức? Có cách nào khác để sử dụng SQLite hơn với trình bao bọc không?


4
Đây là một bản sao của câu hỏi này: stackoverflow.com/questions/26020/ trên và có một câu trả lời khác nhau.
Stewart Johnson

2
Trên thực tế, tôi tin rằng cả hai câu trả lời được chấp nhận liên kết đến cùng một dự án.
Colin

Câu trả lời:


328

Từ https://system.data.sqlite.org :

System.Data.SQLite là bộ điều hợp ADO.NET cho SQLite.

System.Data.SQLite được bắt đầu bởi Robert Simpson. Robert vẫn có các đặc quyền cam kết trên kho lưu trữ này nhưng không còn là người đóng góp tích cực. Công việc phát triển và bảo trì hiện chủ yếu được thực hiện bởi Nhóm phát triển SQLite. Nhóm SQLite cam kết hỗ trợ System.Data.SQLite lâu dài.

System Systemata sqlite3.dll). Không giống như các tổ hợp hỗn hợp thông thường, nó không có sự phụ thuộc liên kết vào thời gian chạy .NET để nó có thể được phân phối độc lập với .NET. "

Nó thậm chí còn hỗ trợ Mono.


33
Đây là một câu hỏi cũ nhưng tôi đã phải thêm 0,02 đô la của mình. System.Data.SQLite đá. Nó là siêu tinh chế, ổn định và chất lượng thương mại. Trên hết, đó là mã được quản lý 100% và đã được phát hành dưới dạng mã nguồn miền công cộng.
Nathan Ridley

4
Chỉ để thống nhất, bởi vì mọi người đang nói về cả hai như những điều khác nhau. Trong sqlite.phxsoftware.com, bạn được trỏ đến sourceforge.net/projects/sqlite-dotnet2 để tải xuống.
yeyeyerman

16
Trình bao bọc này không còn được phát triển bởi tác giả ban đầu của nó và sự phát triển dường như đã được SQLite tiếp quản. Trang web mới có tại system.data.sqlite.org, mặc dù hiện tại nó có vẻ ít thân thiện hơn và tiến hành công việc nhiều hơn so với ban đầu.
mikel

5
@NathanRidley - Bạn có chắc chắn 100% nó được quản lý, bởi vì câu trả lời này nói "System.Data.SQLite là cơ sở dữ liệu SQLite gốc và đầy đủ một nhà cung cấp ADO.NET 2.0 tất cả các cuộn thành một chế độ hỗn hợp đơn lắp ráp."
logicnp

2
FYI, tôi đã thử sử dụng gói Microsoft.Data.Sqlite .NET Standard Nuget của Microsoft, nhưng nó đã thất bại trong một số thử nghiệm tích hợp trong thư viện AsyncPoco Github. Sau khi chuyển sang System.Data.SQLite, mọi thứ đều hoạt động hoàn hảo.
Lee Grissom



15

Mọi người từ sqlite.org đã tiếp quản sự phát triển của nhà cung cấp ADO.NET:

Từ trang chủ của họ :

Đây là một nhánh của bộ điều hợp ADO.NET 4.0 phổ biến cho SQLite được gọi là System.Data.SQLite. Người khởi tạo System.Data.SQLite, Robert Simpson, biết về ngã ba này, đã bày tỏ sự chấp thuận của mình và đã cam kết các đặc quyền trên kho lưu trữ Fossil mới. Nhóm phát triển SQLite dự định duy trì System.Data.SQLite tiến về phía trước.

Các phiên bản lịch sử, cũng như các diễn đàn hỗ trợ ban đầu, vẫn có thể được tìm thấy tại http://sqlite.phxsoftware.com , mặc dù không có bản cập nhật nào cho phiên bản này kể từ tháng 4 năm 2010.

Danh sách đầy đủ các tính năng có thể được tìm thấy trên wiki của họ . Điểm nổi bật bao gồm

  • Hỗ trợ ADO.NET 2.0
  • Hỗ trợ khung thực thể đầy đủ
  • Hỗ trợ đầy đủ Mono
  • Visual Studio 2005/2008 Hỗ trợ thời gian thiết kế
  • Khung nhỏ gọn, hỗ trợ C / C ++

DLL phát hành có thể được tải xuống trực tiếp từ trang web .


DLL sẵn sàng hiện có sẵn
zomf

8

Tôi chắc chắn sẽ đi với System.Data.SQLite (như đã đề cập trước đây: http://sqlite.phxsoftware.com/ )

Nó phù hợp với ADO.NET (System.Data. *) Và được biên dịch thành một DLL duy nhất. Không có sqlite3.dll - vì mã C của SQLite được nhúng trong System.Data.SQLite.dll. Một chút ma thuật được quản lý C ++.


liên kết hiện là 404
SqlACID

7

sqlite-net là một thư viện tối thiểu, nguồn mở để cho phép các ứng dụng .NET và Mono lưu trữ dữ liệu trong cơ sở dữ liệu SQLite 3 . Thêm thông tin tại trang wiki .

Nó được viết bằng C # và có nghĩa là được biên dịch đơn giản với các dự án của bạn. Nó lần đầu tiên được thiết kế để hoạt động với MonoTouch trên iPhone, nhưng đã phát triển để hoạt động trên tất cả các nền tảng (Mono cho Android, .NET, Silverlight, WP7, WinRT, Azure, v.v.).

Nó có sẵn dưới dạng gói Nuget , trong đó đây là gói SQLite phổ biến thứ 2 với hơn 60.000 lượt tải xuống tính đến năm 2014.

sqlite-net được thiết kế như một lớp cơ sở dữ liệu nhanh chóng và thuận tiện. Thiết kế của nó xuất phát từ những mục tiêu sau:

  • Rất dễ tích hợp với các dự án hiện có và với các dự án MonoTouch.
  • Trình bao bọc mỏng trên SQLite và phải nhanh và hiệu quả. (Thư viện không nên là nút cổ chai hiệu năng của các truy vấn của bạn.)
  • Các phương pháp rất đơn giản để thực hiện các thao tác và truy vấn CRUD một cách an toàn (sử dụng tham số) và để truy xuất kết quả của các truy vấn đó theo kiểu được gõ mạnh.
  • Hoạt động với mô hình dữ liệu của bạn mà không buộc bạn phải thay đổi các lớp học. (Chứa một lớp ORM điều khiển phản xạ nhỏ.)
  • 0 phụ thuộc ngoài một dạng biên dịch của thư viện sqlite2.

Các mục tiêu không bao gồm:

  • Không phải là một triển khai ADO.NET. Đây không phải là trình điều khiển SQLite đầy đủ. Nếu bạn cần điều đó, hãy sử dụng System.Data.SQLite.

Tôi nhận thấy rằng hầu hết các bình luận trước năm 2014 đều nói System.Data.SQLite mà tôi đã cố cài đặt trên Ứng dụng Windows Store của mình (không hoạt động). Sqlite-net hoạt động.
JeeShen Lee

2

Mono đi kèm với một bọc. https://github.com/mono/mono/tree/master/mcs/group/Mono.Data.Sqlite/Mono.Data.Sqlite_2.0 cung cấp mã để bọc dll SQLite thực tế ( http: //www.sqlite. org / sqlite-shell-win32-x86-3071300.zip được tìm thấy trên trang tải xuống http://www.sqlite.org/doad.html/ ) theo cách thân thiện .net. Nó hoạt động trên Linux hoặc Windows.

Đây có vẻ là mỏng nhất trong tất cả các thế giới, giảm thiểu sự phụ thuộc của bạn vào các thư viện bên thứ ba. Nếu tôi phải làm dự án này từ đầu, đây là cách tôi sẽ làm.


2

Microsoft.Data.Sqlite

Microsoft hiện cung cấp Microsoft.Data.Sqlite như một giải pháp SQLite của bên thứ nhất cho .NET, được cung cấp như một phần của ASP.NET Core. Giấy phép là Giấy phép Apache, Phiên bản 2.0 .

* Tuyên bố miễn trừ trách nhiệm: Tôi chưa thực sự thử sử dụng bản thân mình, nhưng có một số tài liệu được cung cấp trên Microsoft Docs ở đây để sử dụng với .NET Core và UWP.


2

Đối với những người như tôi không cần hoặc không muốn ADO.NET, những người cần chạy mã gần hơn với SQLite, nhưng vẫn tương thích với netstandard(khung .net, lõi .net, v.v.), tôi đã xây dựng một Dự án nguồn mở miễn phí 100% có tên SQLNado (cho "Không phải ADO") có sẵn trên github tại đây:

https://github.com/smourier/QueryNado

Nó có sẵn dưới dạng một nuget tại đây https://www.nuget.org/packages/SqlNado nhưng cũng có sẵn dưới dạng một tệp .cs, do đó, nó khá thực tế để sử dụng trong bất kỳ loại dự án C # nào.

Nó hỗ trợ tất cả các tính năng SQLite khi sử dụng các lệnh SQL và cũng hỗ trợ hầu hết các tính năng SQLite thông qua .NET:

  • Tự động ánh xạ lớp-bảng (Lưu, Xóa, Tải, Tải Tất cả, LoadByPrimaryKey, LoadByForeignKey, v.v.)
  • Tự động đồng bộ hóa lược đồ (bảng, cột) giữa các lớp và bảng hiện có
  • Được thiết kế cho các hoạt động an toàn luồng
  • Các biểu thức .NET và OrderBy LINQ / IQueryable được hỗ trợ (công việc vẫn đang được tiến hành trong lĩnh vực này), cũng với hỗ trợ đối chiếu
  • Lược đồ cơ sở dữ liệu SQLite (bảng, cột, v.v.) tiếp xúc với .NET
  • Các hàm tùy chỉnh SQLite có thể được viết bằng .NET
  • I / O BLOB gia tăng của SQLite được hiển thị dưới dạng Luồng .NET để tránh tiêu thụ bộ nhớ cao
  • Hỗ trợ đối chiếu SQLite, bao gồm khả năng thêm các đối chiếu tùy chỉnh bằng mã .NET
  • Hỗ trợ công cụ Tìm kiếm Toàn văn bản SQLite (FTS3), bao gồm khả năng thêm mã thông báo FTS3 tùy chỉnh bằng mã .NET (ví dụ như các từ dừng cục bộ). Tôi không tin bất kỳ trình bao bọc .NET nào khác làm điều đó.
  • Hỗ trợ tự động cho Windows 'wonqlite3.dll' (chỉ trên các phiên bản Windows gần đây) để tránh vận chuyển bất kỳ tệp phụ thuộc nhị phân nào . Điều này cũng hoạt động trong các ứng dụng Azure Web!.


0

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

dotConnect cho SQLite là nhà cung cấp dữ liệu nâng cao cho SQLite, được xây dựng trên công nghệ ADO.NET để trình bày một giải pháp hoàn chỉnh để phát triển các ứng dụng cơ sở dữ liệu dựa trên SQLite. Là một phần của khung phát triển ứng dụng cơ sở dữ liệu Devart, dotConnect cho SQLite cung cấp cả kết nối gốc hiệu suất cao với cơ sở dữ liệu SQLite và một số công cụ và công nghệ phát triển sáng tạo.

dotConnect cho SQLite giới thiệu các cách tiếp cận mới để thiết kế kiến ​​trúc ứng dụng, tăng năng suất và thúc đẩy triển khai ứng dụng cơ sở dữ liệu.

Tôi sử dụng phiên bản tiêu chuẩn, nó hoạt động hoàn hảo :)


0

Một trình bao bọc barebones của các chức năng được cung cấp bởi thư viện sqlite. Phiên bản mới nhất hỗ trợ các chức năng được cung cấp thư viện sqlite 3.7.10

Dự án SQLiteWrapper

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.