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