設定模型主鍵自增
告訴MovieModel資料表的主鍵欄位是自增的,由資料庫來賦值,它不需要處理,設定方法如下。
選擇模型中的主鍵欄位,右鍵屬性,開啟屬性面板:
屬性面板中的StoreGeneratePattern選擇Identity,表示在資料插入的時候產生主鍵,Computed表示插入和修改的時候產生主鍵。
做到這裡成功了一半,還有很重要的一步,手動修改架構檔案。右鍵MovieModel.edmx,點擊“開啟檔案”:
選擇以XML的方式開啟,然後點擊“確定”,主面板就會出現MovieModel.edmx的架構檔案。
其中:
概念層結構定義了物件模型 (Object Model),讓上層的應用程式碼可以如物件導向的方式般訪問資料,概念層結構是由 CSDL (Conceptual Schema Definition Language) 表示。
對應層結構負責將上層的概念層結構以及下層的儲存體結構中的成員結合在一起,以確認資料的來源與流向。對應層結構是由C-S mapping content部分表示。
儲存層結構是負責與資料庫管理系統 (DBMS) 中的資料表做實體對應 (Physical Mapping),讓資料可以輸入正確的資料來源中,或者由正確的資料來源取出。它是由 SSDL (Storage Schema Definition Language) 表示。
點開CSDL content節點,我們可以看到如下資訊:
其中紅框中的語句就是我們上一步做的操作添加的,代表主鍵的產生方式。但是這隻是在概念層結構上進行了修改,我們應該還要在儲存層結構結構(SSDL content)上進行修改。
修改前SSDL資訊如所示:
修改後如所示:
我們給主鍵欄位添加了“StoreGeneratePattern=”Identity”的屬性聲明。修改完成後,儲存,然後關閉面板,我們的第一件事情就做完了。注意有幾個實體就要修改幾個地方。
接下來就是第二件事情:讓程式能夠找到MovieModel.edmx的連接字串。
添加實體模型的連接字串
在本項目中,由於MovieModel.edmx與啟動項目是在同一個專案範圍下,建立MovieModel.edmx的時候,Visual Studio自動把連接字串加到Web.config中了。如果是實體模型和啟動項目不再同一個專案範圍,就必須手動把實體模型的連接字串(此種情況建立時會自動產生一個App.config檔案,裡面有連接字串)添加到啟動項目的Web.config中,否則會提示找不到串連出錯。