对于嵌入式RDBMS你不能去错了SQLite作为其Most Widely Deployed SQL Database这个星球上。这是一个基于文件的RDBMS,它可以工作,数据库是自包含的,甚至不需要存在,因为您可以在运行中透明地创建它。
我的ServiceStack's OrmLite维护SQLite的32位和64位提供程序,使其处理工作变得无足轻重,并提供对POCO的一流支持:自动创建表和创建用于复杂属性类型的无模式文本Blob的透明支持。
这是从下载中的NuGet 2种口味:
这里是一个simple web service example:
using (IDbConnection db = "~/App_Data/db.sqlite".OpenDbConnection())
using (IDbCommand dbCmd = db.CreateCommand()) {
dbCmd.DropTable<Author>();
dbCmd.CreateTable<Author>();
var authors = new List<Author> {
new Author { Name = "Demis Bellot" ... },
new Author { Name = "Angel Colmenares" ... },
};
dbCmd.InsertAll(authors);
dbCmd.Select<Author>(q => q.Birthday >= new DateTime(agesAgo, 1, 1)
&& q.Birthday <= new DateTime(agesAgo, 12, 31));
dbCmd.Select<Author>(q => Sql.In(q.City, "London", "Madrid", "Berlin"));
dbCmd.Select<Author>(q => q.Name.StartsWith("A"));
dbCmd.Select<Author>(q => q.Name.EndsWith("garzon"));
dbCmd.Select<Author>(q => q.Name.ToUpper().EndsWith("GARZON"));
dbCmd.Select<Author>(q => q.Name.Contains("Benedict"));
dbCmd.Select<Author>(q => q.Eaqings <= 50);
dbCmd.Select<Author>(q => q.Rate == 10 && q.City == "Mexico");
}
而一个screenshot of the results。