發現Visual Studio 2013已悄悄移掉對SQL Server Compact Edition的內建支援,爬文得知大家較推的替代方案為SQL Server Compact Toolbox。下載安裝SQLCE Toolbox,發現新增SQLCE連線功態被停用並出現Runtime 3.5 not found警示:
心想自己要用4.0,應該用不到3.5,便直接下載SQLCE 4.0 SP1安裝,發現我的Win8上已經有了,看起來就算只用4.0也得裝3.5。乖乖下載安裝SQLCE 3.5 SP2,有個提示:
網站下載的安裝檔會解壓縮出SSCERuntime_x86-ENU.msi及SSCERuntime_x64-ENU.msi兩個檔案,在64位元作業系統中,建議32跟64兩個版本都要裝。安裝SQLCE 3.5SP2後,就能在VS2013裡管理SQLCE資料庫囉。
接著想在專案中為SQLCE資料表建立EntityFramework Model,發現失去Visual Studio內建支援後,做法也與先前不同。要先透過NuGet安裝EntityFramework.SqlServerCompact:
在VS2013為SQLCE建立EF Model,要靠SQL Server Compact Toolbox完成,在介面找到資料庫項目按滑鼠右鍵,選取"Add Entity Data Model(EDMX) to current Project"建立Model:
終於,EDMX建立完成~
比起先前Visual Studio 2010/2012內建整合的操作方式,VS2013的操作步驟複雜不少。從移去SQLCE內建支援來看,猜想微軟傾向開發者改用LocalDB取代SQLCE。就功能面而言,LocalDB能完整支援Stored Procedure、View、Trigger、地理資料型別、分散式交易,在系統規模擴大後能無縫接軌移轉到正式SQL Server,比起SQLCE威力強大許多,不如SQLCE之處只在於檔案體積較大(約160M、SQLCE則只需不到20M)、耗用資源較多(SQLCE為In-Process,LocalDB則需另起Process)、安裝時需管理者權限(某些Web Hosting環境不允許額外安裝軟體),大家可視專案需求抉擇。(MSDN Blog有一篇LocalDB、SQL Express、SQLCE的詳細比較,值得一看)