代码改变世界

可用于Asp.net的嵌入式数据库SqlCE4.0试用笔记

2012-02-14 10:22  slmk  阅读(1861)  评论(4编辑  收藏  举报

随着SQL Server Compact Edition4.0(SQL CE)对多线程的支持,使它不再只适用于运行在掌上电脑等手持设备中,而可以作为asp.net网站的轻量级数据库引擎使用。

Visual Studio 2010 或 Visual Web Developer 2010 Express 项目中添加新项“SQL Server Compact 4.0本地数据库”,就可以得到一个不需要特殊管理员权限,直接发布到网站就能运行的数据库存储方案。对于小型的应用场景还是比较方便的,以前我都是用SQLite,这也是一个不错的嵌入式数据库,对于直接使用ado.net的开发者也是比较方便的(个人猜想微软推出SQL CE4.0是不是针对SQLite的,毕竟智能手机和平板电脑中SQLite还是有着绝对优势的,纯C语言编写,性能和功能都很不错,以前学C语言的时候,还特地下载了源代码研读了下),但是随着Linq和EF的普及后,SQLite.net没有很好的支持,起码和VS开发工具的结合不如SQL CE4方便:

(上图是对EF的支持,值得注意的是数据表必须要设置主键,这时EF的要求?本人对EF的使用处于初级阶段)

出于好奇,自己在新项目中特地使用的一下SQL CE4,感觉使用过程还是很流畅的,跟SQL Server的体验是一样的,特别是用了EF这个数据库抽象模型后,更感觉不到什么不同了。

部署到Web服务器会有所不同,值得注意的是SQL CE4主要是用非托管代码编写的,所以部署时,需要“添加可部署的依赖项”,只要一步:

SQL打钩,确定,发布即可

这成为Bin部署。当然如果你有管理员权限,也可以直接在服务器上运行SQLCE4的安装程序,而不用每个项目都部署到应用程序的Bin下了。更详细部署参考MSDN

值得注意的是需要赋予用户:System.Security.Principal.WindowsIdentity.GetCurrent().Name对App_Data文件夹的读写权限

 

要是以后应用场景变大,要导入到SQL Server数据库中,怎么办呢?有多种选择:

1、SQLCE工具箱:http://sqlcetoolbox.codeplex.com/

2、SQLCE导出:http://exportsqlce.codeplex.com/

 

下载地址:Microsoft SQL Server Compact 4.0