對於嵌入式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。