SQLite 已經成為小型數據庫的王者,成為構建桌面程序、小型 Web 應用等必不可少的工具。給廣大 .NETer 推薦一款 .NET 下的 SQLite 包裝庫 SQLite-net,非常好用,性能也很棒。
支持加密
加密一直是 SQLite 的一個重要掣肘,SQLite-net 可以通過 sqlite-net-sqlcipher 支持數據庫加密,讓你無需再為加密的問題犯愁。
var options = new SQLiteConnectionString(databasePath, true,key: "password");
var db = new SQLiteAsyncConnection(options);
簡單易用
使用簡單的類屬性和特性定義表結構,提供了內置的 ORM 支持 和 Linq 查詢語法,寫起來自然流暢,絲滑無比。
public class Student
{
[PrimaryKey, AutoIncrement]
public int Id { get; set; }
public string Name { get; set; }
}
// 創建數據庫
var db = new SQLiteConnection(databasePath);
db.CreateTable<Student>();
// 插入
var user = new User() { Name = "張三" };
db.Insert(user);
// 查詢
var users = db.Table<User>().Where(u => v.Name.StartsWith("張")).ToList();
也可以直接使用 SQL 執行命令和查詢,提高性能,增加靈活性。
db.Execute ("insert into User(Name) values (?)", "李四");
db.Query<User> ("select * from User where Id = ?", 3);
異步支持
所有的 API 都有異步版本,幫助你提高應用的性能。
await db.CreateTableAsync<User>();
await db.InsertAsync(user);
await db.Table<User>().Where(u => v.Name.StartsWith("張")).ToListAsync();
await db.ExecuteScalarAsync<int>("select count(*) from User");
總之,很棒,強烈推薦。項目地址:
https://github.com/praeclarum/sqlite-net