日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 默认站点!

默认站点

當前位置: 首頁 >

ASP .NET MVC 之Entity Framework入门教程及源码

發布時間:2023/11/30 26 豆豆
默认站点 收集整理的這篇文章主要介紹了 ASP .NET MVC 之Entity Framework入门教程及源码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文主要的目的是

1. 說明Entity Framework Power Tools如何使用。

2. Entity Framework? 快速門

實驗環境:

OS: Windows Server 2012, Windows 7

DE: VS2013 + MVC 6.0+Entity Framework+ SQL Server 2012

準備工作

基于現有數據庫生成POCO數據類和數據庫上下文需要借助Visual Studio一個擴展插件-- Entity Framework Power Tools(一個Code First反向工程工具)。只要在Visual Studio擴展里面輸入“Entity Framework Power”搜索即可找到最新的擴展

?

?

點擊下載即可(如下圖)。當然你也可以到這里Entity Framework Power Tools Beta 3下載安裝包進行安裝。

在這里我們這里新建“School”數據庫,打開Microsoft SQL Server 2012的SQL Server Management Studio管理工具,新建”School”數據庫。

執行創建表的腳本,腳本路徑如下

http://msdn.microsoft.com/zh-cn/data/jj614587

?

然后我們創建一個控制臺應用程序,項目名稱為EFPowerToolsSample。

?

在使用EF power tool 之前,先安裝EntityFramewok,否則會出現奇怪的問題。

在項目引用右鍵彈出菜單選擇“管理NuGet程序包”

在彈出窗口鍵入Entity Framwork,并安裝。

?

?

反向工程生成POCO代碼

右鍵單擊項目,然后選擇“實體框架”–>“對 Code First 進行反向工程”。

輸入要根據其對 Code First 進行反向工程的現有數據庫的相關信息。

注意:這將對數據庫中的所有表進行反向工程,因此如果不希望操作所有表,需要從模型中手動刪除不需要的表。

?

在彈出的窗口中輸入相關的數據庫連接信息即可

點擊高級,修改 Persist? Security Info 為 True。否則會出現錯誤

我們先看一下配置文件,可以看到在配置文件中Entity Framework Power Tools已經自動對數據庫連接串進行了配置,添加了名為“SchoolContext”的數據庫連接串:

在項目中我們還可以看到Entity Framework Power Tools自動創建了一個Models文件夾,這里除了“School”類還有所有的數據類。在Models文件夾下還有一個“Mapping”文件夾,這里放了數據類與數據庫的映射配置類,可以看出Entity Framework Power Tools通過fluent API的方式進行映射細節配置(目前Entity Framework Power Tools還不支持Data Annotations方式),關于配置類的具體細節我們這里暫不進行詳細介紹。

操作EF 進行基本的增刪改查

學習了如何通過工具生成代碼后,我們再學習一下如何使用EF進行最基本的增刪改查操作。

一般查詢

?

?

?

var Courses = db.Courses.Where(c => c.Title == "Physics").OrderBy(c => c.Title);foreach (var c in Courses){Console.WriteLine(c.Title);}

添加

Models.Course model = new Course(); model.Title = "test"; model.DepartmentID = 1; model.CourseID = 4; db.Courses.Add(model); db.SaveChanges();

修改

Models.Course model = new Course(); var result = (from r in db.Courses where r.Title.StartsWith("test") orderby r.Title descending select r).FirstOrDefault();model = (Course)result; model.Credits = 4; model.Title = "good job"; db.SaveChanges();

刪除

var result = from r in db.Courseswhere r.CourseID == 4select r; foreach (var c in result){db.Courses.Remove(c);} db.SaveChanges();

?

簡單的函數計算(count,min,max,sum)

var result = (from r in db.StudentGradeswhere r.StudentID == 2select r).Sum(p=>p.Grade); Console.WriteLine(result); var result = (from r in db.StudentGradeswhere r.StudentID == 2select r).Max(p => p.Grade);Console.WriteLine(result);

?

分頁數據查詢

var result = (from r in db.Peopleorderby r.LastName ascendingselect r).Skip(5).Take(5); foreach(var c in result){Console.WriteLine(c.LastName);}

?

分組group by

var ss = from r in db.StudentGradesorderby r.StudentID descendinggroup r by new { r.StudentID, r.CourseID } into gselect new{g.Key,grade = g.Sum(r => r.Grade)}; foreach (var r in ss){string output = "StudentID:" + r.Key.StudentID + " CourseID:" + r.Key.CourseID+" grade"+r.grade;Console.WriteLine(output);}

?

復雜的關聯查詢

var d = db.Database.SqlQueryForDynamic(@"SELECTc.CourseID,d.[Name] as department,c.Title FROMCourse c INNER JOIN Department d ON c.DepartmentID = d.DepartmentID");foreach (dynamic item in d){var s = item.Title; Console.WriteLine(s);} Console.ReadLine();

歡迎加入企鵝群238473238交流

http://files.cnblogs.com/williamzhu/EFPowerToolsSample.zip

轉載于:https://www.cnblogs.com/williamzhu/p/4171901.html

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是默认站点為你收集整理的ASP .NET MVC 之Entity Framework入门教程及源码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得默认站点網站內容還不錯,歡迎將默认站点推薦給好友。