EF是 EntityFramework 的簡稱。在程式和資料庫交互的過程中,起到了極大的方便。 首先在需要使用EF的項目單擊,然後 Ctrl+Shift+a 找到ADO.NET實體數據模型。 首先在需要使用EF的項目單擊,然後 Ctrl+Shift+a 找到ADO.NET實體數據模型。 單擊添加後, ...
EF是 EntityFramework 的簡稱。在程式和資料庫交互的過程中,起到了極大的方便。
EF的使用
-
首先在需要使用EF的項目單擊,然後 Ctrl+Shift+a 找到ADO.NET實體數據模型。
-
單擊添加後,會讓選擇模型內容,目前用到的就只有 (數據表,存儲過程, 視圖),所以選擇添加 來自資料庫的EF設計器
-
點擊下一步,會讓我們選擇一個資料庫,如果沒有自己想要的資料庫連接,可以自己新建連接。然後我們會看到這個 選擇是,然後直接下一步就可以了,別的都不用管。
-
這一步中就可以選擇表,視圖,或者存儲過程等了,這個根據自己需求添加即可。 跟之前一樣,別的什麼都不用管,添加好之後的截圖:
-
最後一步點擊完成就可以了。由於文件比較大,所以添加後,可能會出現卡頓的現象。
添加後,解決方案中會增加這個文件夾:
EF的實際應用(增刪改查)。
首先說明一下: 添加EF 之後,會自動的給程式添加實體類。
EF的增加:
首先實例化剛纔添加的EF ,再用對象初始化器將自己要添加的對象實例化,然後使用EF添加再保存即可。案例:
EFDBEntities efdb = new EFDBEntities();
Students objStudent = new Students()
{
StudentName = "小明",
ClassId = 2,
Gender = "男"
};
efdb.Students.Add(objStudent);
int result = efdb.SaveChanges();
代碼詳解:
- 首先實例化了 EF
- 然後使用對象初始化器將自己要添加的對象實例化
- 接下來用自己實例化的EF 添加一下剛纔實例化後的對象
- 最後保存到資料庫中。
最後兩部的解釋:這兩行代碼看似是冗餘的,但是實際上並不冗餘,少了哪一行代碼都不行。其中 第一行代碼就是將這個對象添加到緩存中,但是並沒有上交到資料庫中,而第二行代碼就提交到了資料庫中,然後用一個int類型的參數接受執行的行數。
(修改)
想修改,就要先找到要修改的對象。
- 首先還是實例化EF
- 其次就是查找需要修改的學員的對象。 (由於修改中用到了查詢,所以在這裡就不介紹查詢了。直接參照這個修改的查詢就可以了。)
- 修改各個屬性的值
- 提交保存
在這裡用到了兩種查詢方式,用哪個都可以,完全看個人愛好。
首先將需要修改的對象 查詢出來。
Students objStudent = efdb.Students.FirstOrDefault(s => s.StudentId == 1000006);
然後修改各個屬性值就可以。
objStudent.StudentName = "張紅利";
objStudent.PhoneNumber = "99999999";
修改完之後提交保存。
int result = efdb.SaveChanges();
另一種查詢的方式
Students objStudent = (from s in efdb.Students
where s.StudentId == 100006
select s).First<Students>();
通過主鍵列獲取對象信息。
Students objStudent = efdb.Students.Find(100006);
註意:find只能查詢主鍵也就是id 然後獲取整個對象。裡面不能查詢姓名等。
如果取的是第一個值:
Students objStudents = (from s in students select s).FirstOrDefault();
如果取得是唯一值:
objStudents = (from s in students select s).SingleOrDefault();
兩者的區別:
第一個值:獲取學員中的第一個對象.(可以是多個)
唯一值:如果查詢結果只有一個.(必須是一個)
First()、FirstOrDefault() 異同:
- 相同點:都用於獲取結果集中的第一個元素
- 不同點:如果序列中不包含任何元素,前者返回null,後者返回預設值
Single()、SingleOrDefault()異同
- 相同點:都用於獲取結果中的唯一元素
- 不同點:如果序列中不包含任何元素,前者返回null,後者返回預設值
- 特別註意:當數據源中包含多個元素時,這兩個方法會產生異常。
(刪除)
想刪除,就要先找到要刪除的對象。
- 首先實例化EF
- 查詢需要刪除的對象
- 從資料庫中刪除這個對象。
首先需要找到需要刪除的學員對象
Students objStudent = efdb.Students.FirstOrDefault(s => s.StudentId == 100015);
然後從集合中刪除對象
efdb.Students.Remove(objStudent);
最後保存到修改。
int result = efdb.SaveChanges();
.Net Framework 支持的規範函數