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=DataClothesSys.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。
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android 客户端RSA加密的实现方法
- Android圆形头像拍照后“无法加载此图片”的问题解决方法(适配Android7.0)
- Android 中Failed to read key from keystore解决办法
- Android圆角按钮的制作方法
- Android计时器控件Chronometer应用实例
- Android 中利用 ksoap2 调用 WebService的示例代码
- Android自定义View展示Wifi信号强弱指示方法示例
- android事件分发机制的实现原理
- Android 在子线程中更新UI的几种方法示例
- WebView设置WebViewClient的方法
- Android星级评分条的实现代码
- Android模仿美团顶部的滑动菜单实例代码
- android实现按钮获取焦点延迟加载
- Devtools 老师傅养成[1] - Chrome Devtools介绍
- Android4.4开发之电池低电量告警提示原理与实现方法分析