SQLite 不支援外鍵 → CodeSmith 無法讀取關聯 → 無法產生多對多映射 → 手寫 HBM/Entity 痛苦。SQL CE 3.5 桌面版支援完整索引/關係/約束,**免安裝、單檔 (.sdf)、完美嵌入**,成最佳替代。
| 坑點 | 現象 | 解決 |
|---|---|---|
| NHibernate 查詢失敗但 SSMS 可跑 | `SELECT ... FROM dbo.Book` 拋異常,InnerException 無明確訊息 | ADO.NET 直連測試 → 發現 **表名帶 `dbo.` 前綴** 導致 CE 不識別 |
| CodeSmith 產生 HBM 含 `dbo.` | ` | 修改 CodeSmith 模板:`table.FullName` → `table.Name` 移除 Schema 前綴 |
| CE 不支援 Stored Procedure | ORM 層面影響小,改用參數化 SQL/LINQ | 接受無 SP 限制,專注表/關係/索引 |
SQL CE 3.5 + CodeSmith + NHibernate **輕量嵌入式資料庫開發鐵三角**。關鍵在 **移除 Schema 前綴**、**接受無 SP**、**建立自動化 Schema 同步流程**。適合單機/Client-Side/偶爾同步的輕量應用。