OEA 2.11 支持单机版数据库

  • 时间:
  • 浏览:0

既然要使用单机版数据库,不到 选用那些数据库比较好呢?目前,业界普遍使用的单机数据库主要还是 SQLite、Access 和 SQLCE。用得比较多的还是 SQLite,性能也很好,什儿 应该是 OEA 的首选。SQLCE 在老的版本中主要用于嵌入式开发,在桌面端应用得也少。Access 现在用的人不到 少了,有就让连接起来比较费劲,什儿 在 OEA 中就不考虑了。

痛苦之余,我再对 SQLCE 进行了研究。

这是进销存实例生成的对应的库:

接下来,我对 SQLite 进行了什儿 测试。

最后总结一下二者的对比:

在使用 OEA 进行开发的过程中,不论是单机版、C/S 版还是B/S 版,它们的界面层以下的代码须要一样的,包括服务层、实体层、数据层等。而 单机版 和 C/S 版本的界面也是删改重用。好多好多 ,在开发完成就让 ,只须要把数据库连接的配置改变为单机数据库连接就还都还可以了,如下图:

为那些要支持本地数据库呢?

OEA 咋样支持单机版

确实目前的 OEA 中机会有使用到 SQLCE 3.5,实现了客户端缓存(详见:OEA中的缓存模块设计)。确实 SQLCE 3.5 不必支持并发,有就让在客户端缓存中不到 什儿 问提图片。另外,确实 AutoDB 自动生成并升级数据库,有就让在做业务开发的就让 ,一直要一直去数据库中查询数据。有就让 SQLCE 3.5 麻烦的地方就在于不到 一2个好的界面管理器,不管是 VisualStudio 中集成的功能、还是 SqlServer Management Studio,须要方便使用。原本搞笑的话,平时操作起来就会非常麻烦,何谈开发强度。

有的让.我会说,性能方面,SQLite 可比 SQLCE 快好多好多 。有就让确实我本人感觉 SQLCE 的强度好多好多 我慢,数据量须要非常大的清况 下,应该不到 问提图片。

在 OEA 平台 设计中,须要支持多种数据库,这共要包括了 SqlServer、Oracle、一2个单机文件数据库。而就让 对于什儿 块,让.我一直不到 实现,好多好多 我预留了什儿 接口。昨天花费了一天的时间,让 OEA 支持了本地数据库 SQLCE。

配置完成后,运行线程池,即在输出目录下建立了 Data 文件夹,并自动生成对应实体的数据库:

主要还是测试什儿 数据库和 OEA 目前的设计否有有较多的冲突。结果发现青春恋爱物语是太不一样了。首先,OEA 平台的 AutoDb 模块会删改管理数据库,以达到开发人员在平时的开发中忽略数据库的地处。也好多好多 我说,什儿 模块会完成对数据库行态的建立、修改;数据的升级等。原本查了什儿 关于 SQLLite 的资料,最后得到的结论是:SQLLite 不支持 删除字段,修改字段。其中,还得查询 SQLLite 的数据库行态信息,以支持数据库差异升级,这在 SQLite 中也支持得很有限,不到从一2个 sqlite_master 表中查询到数据表的建库SQL,拿下来还得本人解析。其次,在 SQLite 中,外键约束还都还可以被创建,有就让却不必被检查。引用删改性都不到 保证,查询强度再快有时也没用。有就让,象级联删除这反衬较普遍的需求好多好多 我支持,都须要编写触发器完成,确实 AutoDb 还都还可以自动编写,有就让总感觉太费事了。而 OEA 中聚合对象的删除,目前的设计是在根对象上删除后,自动级联删除整个聚合树,要改搞笑的话比较麻烦,好多好多 这什儿 还是冲突。最后,在界面管理器方面,SQLite 用的主要第三方的软件,有好多好多 ,试用了一下,就感觉 SQLiteMgr 还不错,不过用起来不必顺手。

OEA中单机数据库选型 SQLite vs SQLCE 

最终,经过一天的时间,OEA 成功支持单机数据库。还好有 SQLCE 4,要不就太费劲了!

有兴趣的让.我还都还可以在 OEA 2.9 平台发布 中对应的开源地址,使用 SVN 下载最新的源码即可直接运行。(首次启动时,要生成数据库,会须要半分钟左右。)

鉴于此,我又查找了什儿 最新的 SQLCE 4.0 的资料。比较幸运的是,SQLCE 4.0 现在机会支持并发了,在 Web Matrix 开发 Web 网站时,默认须要使用 SQLCE 4.0 来做数据存储的。有就让,它还提供了比较好的界面管理器:SqlCeToolbox,前三三7天 才发布了最新版本,非常好用。(另外,这篇文章中讲了咋样使用 SQLCE 开发,还给了 VS 的插件。)其次,SQLCE 4.0中的数据还都还可以无缝地迁移到 SQLServer、SQLAzure 中,这也是非常棒的行态。最后,也是非常重要的,在数据库设计方面,SQLCE 4 基本上和 SQLServer 是保持一致的,支持 主键、外键、自增列、级联删除等。这就使得 让.我在 OEA 上,不论是 AutoDB 还是 ORM,支持 SQLCE 都变得比较容易。