Sql Server Compact Edition 3.5 与 LinqtoSql

LinqtoSql是一个不错的ORM框架,尤其是集成在VS2008中使用起来很方便。Sql CE 3.5则是VS2008中自带的一个轻量级的单机数据库。比较悲剧的是VS2008居然不支持把SQL CE中的表直接导入到DBML中,很难理解为什么微软这么做。但.Net framework 3.5中的LinqtoSql写明是支持SQL CE 3.5。也就是其中还是有方法可以实现的。

查询了Msdn得知,.Net Framework提供了一个叫做SqlMeta.exe的工具(一般位于系统盘下的Progream Files\Microsoft SDKs\Windows\v6.0A\bin),用这个工具可以直接生成LinqtoSql的dbml。然后在Project中引用这个文件即可。

SqlMeta简单使用范例 

SqlMetal.exe DBSample.sdf /dbml:DBSample.dbml 
(SqlMeta.exe的完整语法可以参阅这里http://msdn.microsoft.com/en-us/library/bb386987.aspx)

 

题外话:写到这里,我突然想起来了,很早以前喜欢抨击微软技术的人常说的一句话,“微软把IDE和编译器混在了一起,导致很多人离开了Visual Studio就无法开发程序了”,现实中越来越多的底层技术被微软包装过之后变得很易用,开发起来很快。但程序员为此付出的代价是很高的,知其然而不知其所以然的结果,导致很多时候我们只能被动地跟着微软走。Sql CE 4.0的Release Note里面,已经标明不支持LinqToSql,而转投Entity Framework~~Hoho,又要变了~

 

posted @ 2011-02-07 22:37  Justin Zhang  阅读(769)  评论(0编辑  收藏  举报