SQLite to EF 筆記

14:20 0 Comments A+ a-

前言
SQLite 是一個小型嵌入式資料庫,具有高度可攜性。小巧方便效率佳,無怪乎越來越多系統採用。當然 SQLite 不是無敵的,適材適用才是王道。

前置作業
phxsoftware 下載 System.Data.SQLite 元件。它有內建一個 Designer,可與 VS2008/2010 整合,直接對 SQLite 資料列進行操作。
PS:該 Designer 尚在發展中,可能會遇到部份操作上的問題。此時只得由其他工具程式代勞了。

推薦使用 SQLite2009 Pro Enterprise Manager 可以擁有更多特異的操作,如大量匯入資料等。


大致流程
1. 先建立起資料庫連線,方便後續的操作


2. 加入新類別項目,這裡選用 ADO.NET 實體資料庫模型


3. 利用精靈加入 Entity Data Model


4. 選擇資料連接。這裡可看到 SQLite 資料庫的實體連接字串。因連接字串為實體檔案,倘若是虛擬主機,那可能就有問題了。得思考其他可行方案。我現在就遇到了,還不知道該怎麼解決XD


5. 最後 SQLite to EF 已經建立完成,可以在其他專案中被取用。

提醒一下,SQLite 的資料型別與 MSSQL(等) 不盡然相同,這要稍微留意一下。如 SQLite 沒有 Boolean 型別,是用 Int 型別來代替的。

我們可以在 MVC 專案中,可以直接利用強型檢視的方式
<%@ Page Language="VB" Inherits="System.Web.Mvc.ViewPage(Of IEnumerable (Of Models.DimProspect))" %>
將需要的資料列表在網頁上。PS:這是一個奇妙的例子,我個人認為這會讓維護有一定的難度。但是敝公司 ERP 的資料庫全都是這個樣。我猜,這樣的設計應該是故意的,這樣客戶端才比較不容易直接到資料庫去玩耍 (真的嗎)?

對了,記得抽空去看看 (YourEFInstace).Designer.vb,好明白系統幫你做了什麼事,Property Sets、Sub Sets、Function Sets 等等。如一個 Data Table 有 100 個 Data Schema,那麼會有 100 個物件屬性,手工打造的話會浪費掉不少時間。Designer 的方便性就在這裡。而且尚有一個好處,了解 Designer 做了哪些機制,將有助於除錯。