模仿EF,我们用JS开发的HTML5 SQLite 访问库

今天终于有空把demo放到了RunJS上面去。请使用google chrome观看在线演示:

http://sandbox.runjs.cn/show/pekbd9zb

这个库本来是我们开发的phonegap框架中的一部分,后来有人想单独引用这个库,因此今天我就把它从phonegap框架中提出来了,成为一个独立的操作HTML5 SQLite的javascript库。

英文文档以及live demo的源代码都放到了github上面:

https://github.com/leotsai/html5sqlite

这个库使用起来非常简单,跟entity framework非常类似,因为我们在一开始就是想完全模拟EF,用JS来实现EF的全套功能,这个目标现在已基本实现。比如以下这些EF很酷的功能我们都已经实现了:

1. Code First。用代码来定义和生成数据库;

2. Data Migration(数据迁移)。当数据库表需要升级的时候,你只需提供相关的sql,升级将会在数据库初始化的时候自动运行。

3. Repository(仓储模式)。所谓仓储模式,就是说任何对repository的增加/删除/更新操作都只有在调用了DbContext.SaveChanges之后才会生效。所以,这个库支持批量插入/删除/更新数据库。

4. 链式Linq查询。如:db.users.where(...).where(...).orderBy(...).thenBy(...).toArray(callback).

5. 插入数据时,自动更新该条记录的id,完全实现了EF的功能。

这里也有详细的中文介绍(稍微有一点点不一样):

http://www.cnblogs.com/leotsai/p/nova-phonegap-framework-chapter-4.html

原文地址:https://www.cnblogs.com/leotsai/p/html5-sqlite-entity-framework.html