天天看點

ASP.NET MVC 初學筆記.1 EF連接配接資料庫的多種方法

一、手動配置連接配接資料庫(CF)

以前ADO各種conn加cmd就完成連接配接查詢了,EF呢~得配置。配置有兩種方法,一種是全自動,一種是全手動。

EF有一個基本概念,CODE FIRST和DB FIRST(??不知道寫對沒)以及MODEL FIRST,我認為差別就是:你完全建好了資料庫就DF,你還沒想好資料庫的設計就CF,CF意思就是你不用設計資料庫了,你想使用的變量等等在Models裡建好實體類,然後資料庫建立Table和字段都是配置後端操作過程中完成了,相當。。。省心。。吧。。。

先記錄一下全手動配置

建立一個空白的MVC工程:命名為test

1、引用EntityFramework

去NuGet搜尋下載下傳EntityFramework,引用裡就有這兩個東西了

ASP.NET MVC 初學筆記.1 EF連接配接資料庫的多種方法

2、建實體,Models

Model名可以簡單了解為資料庫對應的表名,Model裡的内容就是表的各個字段。在Models下建一個Testable.cs

ASP.NET MVC 初學筆記.1 EF連接配接資料庫的多種方法

3、建資料上下文

簡單的了解,EF上下文更像是一個連接配接的實體類似于把ADO裡的連接配接資料庫的語句封裝起來,在Models下建Dbcontest.cs

此處一定要using System.Data.Entity 因為 Dbcontext是來自于EF的。

ASP.NET MVC 初學筆記.1 EF連接配接資料庫的多種方法

4、配置連接配接資訊

上面的DBcontest是從配置資訊裡先讀取資料庫連接配接字元串,是以需要配置根目錄下的Web.config

ASP.NET MVC 初學筆記.1 EF連接配接資料庫的多種方法

5、生成控制器

可以自動生成也可以手動寫,這裡介紹自動的方法

在Controllers上右鍵—添加—控制器

ASP.NET MVC 初學筆記.1 EF連接配接資料庫的多種方法

接着選我們剛剛建好的模型類和資料上下文

ASP.NET MVC 初學筆記.1 EF連接配接資料庫的多種方法

等待幾秒鐘......就自動生成了對應的Controller和View

ASP.NET MVC 初學筆記.1 EF連接配接資料庫的多種方法

6、RouteConfig配置測試

ASP.NET MVC 初學筆記.1 EF連接配接資料庫的多種方法

7、生成的頁面能看到下面這個就算是成功了~

可以看到Testtables這個表裡什麼都沒有

ASP.NET MVC 初學筆記.1 EF連接配接資料庫的多種方法

點Creat New

ASP.NET MVC 初學筆記.1 EF連接配接資料庫的多種方法

在文本框輸入測試内容後傳回清單就看到資料表的内容了~

ASP.NET MVC 初學筆記.1 EF連接配接資料庫的多種方法

這時候再去資料庫看一下,已經建立好了表,剛才建立的内容也應進入了資料表

ASP.NET MVC 初學筆記.1 EF連接配接資料庫的多種方法
ASP.NET MVC 初學筆記.1 EF連接配接資料庫的多種方法

再看一下字段的資料類型(屬性)全是自動生成的

ASP.NET MVC 初學筆記.1 EF連接配接資料庫的多種方法

*****如果對字段的屬性有特别需要,比如指定主鍵和不同的資料類型,就需要先在實體類裡用[]來進行注釋

并且需要

using System.ComponentModel.DataAnnotations;

using System.ComponentModel.DataAnnotations.Schema;

ASP.NET MVC 初學筆記.1 EF連接配接資料庫的多種方法

如果有資料庫了,資料庫有表有資料了,那EF要如何配置呢,那麼請看第二種方式。

二、手動配置的DF連接配接的方式

接下來說手動配置以DF為主的模式,要用EF去操作已存在的資料庫,就得得使用這種方式,其過程和CF差不多隻是略有一些不一樣。

1、先在資料庫建一個名Testtable2的表

2、在Models裡建一個實體類 Testtable2

注意[Tabel"Testtable2"]的意思就是指定資料庫的Testtable2這張表。

ASP.NET MVC 初學筆記.1 EF連接配接資料庫的多種方法

3.在資料庫上下文的裡加入以下函數

此字元串的含義是啟動連接配接時屏蔽效驗,CF模式啟動時會效驗__MigrationHistory資料表,想用DF模式效驗就會出錯,摘抄自連結

ASP.NET MVC 初學筆記.1 EF連接配接資料庫的多種方法

4.自動生成Controller和View

5.運作

就能讀出來testtable2的表了

ASP.NET MVC 初學筆記.1 EF連接配接資料庫的多種方法

6.報錯

在我操作的配置過的EF裡遇到過兩種錯誤:

①這種錯誤就是先模拟運作一下,再進行控制器的自動生成就行了。

ASP.NET MVC 初學筆記.1 EF連接配接資料庫的多種方法

②是報錯

The model backing the 'XXX' context has changed since the database was created. Consider using Code First Migrations to update the database(http://go.microsoft.com/fwlink/?LinkId=238269).

意思其實就是EF在CF模式下需要遷移資料庫,用 (二).3的步驟可以解決,如果還有問題可以參考這篇文章

三、自動配置EF方法

自動配置就一個字,快。

下面上步驟

1、建立實體資料模型

ASP.NET MVC 初學筆記.1 EF連接配接資料庫的多種方法

選EF設計器

ASP.NET MVC 初學筆記.1 EF連接配接資料庫的多種方法

點建立連接配接

ASP.NET MVC 初學筆記.1 EF連接配接資料庫的多種方法

填自己的伺服器資訊

ASP.NET MVC 初學筆記.1 EF連接配接資料庫的多種方法

紅圈處可更改自己的資料上下文實體

ASP.NET MVC 初學筆記.1 EF連接配接資料庫的多種方法

選需要的表

ASP.NET MVC 初學筆記.1 EF連接配接資料庫的多種方法

然後就……全自動生成了我們手動生成的所有的實體模型

ASP.NET MVC 初學筆記.1 EF連接配接資料庫的多種方法
ASP.NET MVC 初學筆記.1 EF連接配接資料庫的多種方法
ASP.NET MVC 初學筆記.1 EF連接配接資料庫的多種方法

2、接着再自動生成Controller和View

ASP.NET MVC 初學筆記.1 EF連接配接資料庫的多種方法
ASP.NET MVC 初學筆記.1 EF連接配接資料庫的多種方法

3、測試

ASP.NET MVC 初學筆記.1 EF連接配接資料庫的多種方法

沒錯,自動配置就是這麼的快,但從原理上講手動設定更直覺的明白每個地方的構造是幹什麼的,也可以進行靈活的設定及更改,友善最終的釋出部署。

繼續閱讀