Rafy 领域实体框架演示(4) - 使用本地文件型数据库 SQLCE 绿色部署

本系列演示如何使用 Rafy 领域实体框架快速转换一个传统的三层应用程序,并展示转换完成后,Rafy 带来的新功能。
《福利到!Rafy(原OEA)领域实体框架 2.22.2067 发布!》
《Rafy 领域实体框架示例(1) - 转换传统三层应用程序》
《Rafy 领域实体框架演示(3) - 快速使用 C/S 架构部署》
前言
支持一款与 Access 类似的文件型数据库,对于一些绿色安装的应用程序来说是非常必须的。使用 Rafy 领域实体框架开发的应用程序,可以在不变更一行代码的情况下,直接由大型数据库管理系统,移植到使用简单的 SqlCE 4 文件型数据库。(关于选择使用 SQLCE 4 作为文件型数据库的原因,详见:《OEA 2.11 支持单机版数据库 - SQLite与SQLCE对比》。)
本文说明如何快速配置 Rafy 应用程序,使得不需要修改任何代码的同时,让原本支持分布式部署、连接 SqlServer 的应用程序,转换为使用 SQLCE 数据库,以支持绿色部署。
拷贝 SQLCE 4 相关程序集
首先,需要把 SQLCE 对应的文件都拷贝到执行文件对应的项目中:

引用 System.Data.SqlServerCe:

把刚拷贝进项目中的 amd64 及 x86 文件夹中所有文件的”Copy to Output Directory” 属性设置为”Copy if newer”,这样,编译后的文件夹中就会自动拷贝这两个文件夹中的所有文件了:


修改配置文件
然后,需要修改配置文件中的数据库连接相关的配置节。修改后的配置文件内容如下:
1: <?xml version="1.0"?>
2: <configuration>
3: <connectionStrings>
4: <add name="CS" connectionString="Data Source=Data\ClothesSys.sdf;Case Sensitive=True;" providerName="System.Data.SqlServerCe" />
5: </connectionStrings>
6: <system.data>
7: <DbProviderFactories>
8: <remove invariant="System.Data.SqlServerCe"/>
9: <add name="SqlServerCe Data Provider" invariant="System.Data.SqlServerCe" description="SqlServerCe Data Provider"
10: type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/>
11:
12: </DbProviderFactories>
13: </system.data>
14: </configuration>
运行程序
这样,就已经完成了所有的步骤。此时运行程序,会发现首次运行时程序启动较慢,这是因为Rafy正在创建指定的 ClothesSys.sdf 数据库及其中的初始数据:

数据库创建完成后,程序正常启动,并可以直接登录。


代码下载
下载地址:http://pan.baidu.com/s/1AB9TL

本文对应的示例代码在“4.使用 SQLCE4 文件型数据库”文件夹中。
欢迎试用 Rafy 领域实体框架,框架发布地址:http://www.cnblogs.com/zgynhqf/p/3356692.html。
Rafy 领域实体框架演示(4) - 使用本地文件型数据库 SQLCE 绿色部署的更多相关文章
- Rafy 领域实体框架演示(3) - 快速使用 C/S 架构部署
本系列演示如何使用 Rafy 领域实体框架快速转换一个传统的三层应用程序,并展示转换完成后,Rafy 带来的新功能. <福利到!Rafy(原OEA)领域实体框架 2.22.2067 发布!> ...
- Rafy 领域实体框架演示(2) - 新功能展示
本文的演示需要先完成上一篇文章中的演示:<Rafy 领域实体框架示例(1) - 转换传统三层应用程序>.在完成改造传统的三层系统之后,本文将讲解使用 Rafy 实体框架后带来的一些常用功能 ...
- Rafy 领域实体框架示例(1) - 转换传统三层应用程序
Rafy 领域实体框架发布后,虽然有帮助文档,许多朋友还是反映学习起来比较复杂,希望能开发一个示例程序,展示如何使用 Rafy 领域实体框架所以,本文通过使用 Rafy 领域实体框架来改造一个传统的三 ...
- Rafy 领域实体框架简介
按照最新的功能,更新了最新版的<Rafy 领域实体框架的介绍>,内容如下: 本文包含以下章节: 简介 特点 优势 简介 Rafy 领域实体框架是一个轻量级 ORM 框架. 与一般的 ORM ...
- Rafy 领域实体框架 - 公司内部培训视频
本月给公司内部一个项目做架构重构,其中使用到了 Rafy 框架.所以我培训了 Rafy 领域实体框架的使用方法,过程中录制了视频,方便其他同事查看.现在把视频放到园里来分享下,有兴趣的朋友可以看看,有 ...
- Rafy 领域实体框架 - 树型实体功能(自关联表)
在 Rafy 领域实体框架中,对自关联的实体结构做了特殊的处理,下面对这一功能进行讲解. 场景 在开发数据库应用程序时,往往会遇到自关联表的场景.例如,分类信息.组织架构中的部门.文件夹信息等,都 ...
- Rafy 领域实体框架设计 - 重构 ORM 中的 Sql 生成
前言 Rafy 领域实体框架作为一个使用领域驱动设计作为指导思想的开发框架,必然要处理领域实体到数据库表之间的映射,即包含了 ORM 的功能.由于在 09 年最初设计时,ORM 部分的设计并不是最重要 ...
- Rafy 领域实体框架 - 领域模型设计器(建模工具)设计方案
去年4月,我们为 Rafy 框架添加了领域模型设计器组件.时隔一年,谨以本文,简要说明该领域模型设计器的设计思想. 设计目标 Rafy 实体框架中以领域驱动设计作为指导思想.所以在开发时,以领域建模为 ...
- 福利到!Rafy(原OEA)领域实体框架 2.22.2067 发布!
距离“上次框架完整发布”已经过去了一年半了,应群中的朋友要求,决定在国庆放假之际,把最新的框架发布出来,并把帮助文档整理出来,这样可以方便大家快速上手. 发布内容 注意,本次发布,只包含 Rafy ...
随机推荐
- 依赖倒置(DIP)与依赖注入(DI)
依赖倒置原则(Dependency Inversion Principle)为我们提供了降低模块间耦合度的一种思路,依赖注入(Dependency Injection)是一种具体的实施方法. 依赖倒置 ...
- iOS开发系列--Objective-C之协议、代码块、分类
概述 ObjC的语法主要基于smalltalk进行设计的,除了提供常规的面向对象特性外,还增加了很多其他特性,这一节将重点介绍ObjC中一些常用的语法特性.当然这些内容虽然和其他高级语言命名不一样,但 ...
- RPC通信框架——RCF介绍
现有的软件中用了大量的COM接口,导致无法跨平台,当然由于与Windows结合的太紧密,还有很多无法跨平台的地方.那么为了实现跨平台,支持Linux系统,以及后续的分布式,首要任务是去除COM接口. ...
- static与并发
在java中static用来修饰Class类中属性和方法. 被static修饰的成员属性和成员方法独立于该类的任何对象,它们在内存空间上会被放在描述Class的位置中,也就是说它们为此类(Class) ...
- Docker:Ubuntu下的安装
Docker是什么 Docker 是 Docker.Inc 公司开源的一个基于 LXC技术之上构建的Container容器引擎, 源代码托 管在 GitHub 上, 基于Go语言并遵从Apache2. ...
- S1293和S2220KTV项目结束
1.界面原型(前台的界面搭建一下) 2.数据库 3.架构设计 4.约定的文件抽取 2015年7月20日下午 歌星点歌三界面的联动,数据动态加载 01.点击第一个LIstView,弹出第二个ListVi ...
- Java程序员的日常—— FileUtils工具类的使用
package cn.xingoo.learn.commons; import org.apache.commons.io.FileUtils; import org.apache.commons.i ...
- 网页webp转非webp的jpg gif png 图片
webp 谷歌提出的一种图片格式.支持动图: gif静图: png jpg 网页 webp / jpg / gif / png 图片提取. 已在微信.淘宝.京东.一号店上测试通过. 如果电脑上有 ch ...
- Oracle 创建普通用户,并赋予权限
采用sys or system / manager as sysdba; 连接数据库. 创建普通用户konglin: create user konglin identified by pwd_ora ...
- 设计与开发一款简单易用的Web报表工具(支持常用关系数据及hadoop、hbase等)
EasyReport是一个简单易用的Web报表工具(支持Hadoop,HBase及各种关系型数据库),它的主要功能是把SQL语句查询出的行列结构转换成HTML表格(Table),并支持表格的跨行(Ro ...