當初寫這個功能的時候遇到不少坑,特此留念
(1)關於連接的建立
首先,需要在web.config中添加數據庫連接:
<connectionStrings>
<add name="itemEntities" providerName="System.Data.SqlClient" connectionString="Data Source=localhost;Initial Catalog=item;Integrated Security=True" />
</connectionStrings>
然後是添加這段:
<entityFramework>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
</entityFramework>
最後右鍵項目,點擊“管理NUGet”,從裏面下載EntityFramework的dll
這樣就大功告成了。
當然,如果是通過直接添加ADO.NET實體數據模型的新建項的話,以上步驟可以省略,但是我更習慣將數據庫的操作獨立封裝爲一個類庫,然後在主程序中添加對類庫的引用
(2)關於code first的數據表的更新
關於這部分看了微軟的官方文檔,但是感覺比較簡略,很多我關心的地方都沒寫;後來又看了一些別人寫的博客,但感覺廢話太多了,而且和微軟一個尿性,基礎的常用功能沒講,反而各種高級功能和廢話一大堆。所以這裏我只講一些最基礎的功能,關於code first的實體框架怎麼建立我這裏就不講了,自己去搜。
數據表的更新可以設置爲自動更新,但默認設置是手動更新。
手動更新:
(1)打開程序包管理器控制檯後,輸入這一句:
enable-migrations
以啓用遷移
然後在實體類裏隨便改改,比如添加一個字段“test”:
然後繼續往控制檯輸入:
add-migration MyDB
這個“MyDB”是我亂打的
回車後是這樣:
最後繼續輸入:
update-database -Verbose
這個“-Verbose”參數可以輸出sql語句執行的過程,調試的時候很有用
結果是這樣:
這樣就成了,關於刪除和修改的方法也是和這個一樣。
自動遷移:
關於自動遷移的操作比較簡單,控制檯裏有時也會有這樣的提示:
根據這個提示找到相應的類,並修改代碼如下:
其實說起來下面那一行代碼也是不需要的,但我這裏還是加上去了,關於他的作用可以看看代碼提示
這樣改完了以後就可以省略掉add-migration MyDB 這一句代碼,直接打update-database這句了。