亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > .NET > 正文

ASP.NET MVC+Entity Framework 4.1訪問數據庫

2024-07-21 02:48:13
字體:
來源:轉載
供稿:網友
asp.net MVC+Entity Framework 4.1訪問數據庫

Entity Framework 4.1支持代碼優先(code first)編程模式:即可以先創建模型類,然后通過配置在EF4.1下動態生成數據庫。

下面演示兩種情形:

1、代碼優先模式下,asp.net mvc數據訪問

2、傳統模式,先創建數據庫和表,配置連接字符串,再生成模型

第一種情況的步驟:

(1)使用空模板,創建ASP.NET MVC3.0(或4.0)項目,假定項目名:MVC_Student

注意:創建完項目后,項目會自動引用EF4.1

(2)在Model文件夾下,創建數據庫上下文類:StuDBContext

public class StuDBContext:DbContext { public StuDBContext() :base("DataConn") { }

public DbSet<StudentInfo> Students { get; set; } }

(3)創建域模型:StudentInfo

public classStudentInfo { public int ID { get; set; } public string StuNO { get; set; } public string StuName { get; set; } public string StuPhoto { get; set; } public DateTime StuBirthday { get; set; } public string StuAddress { get; set; } }

(4)在web.config中配置連接字符串(也可以不配置,EF自動檢查并使用SQL SERVER EXPRESS,此處我們指定服務器和數據庫)

<connectionStrings><!--<add name="StuDBContext" connectionString="server=(local);database=MyStudent;uid=(登錄賬戶);pwd=(登錄密碼)" providerName="System.Data.SqlClient"/>--><add name="DataConn" connectionString="server=(local);database=MyStudent;uid=(登錄賬戶);pwd=(登錄密碼)" providerName="System.Data.SqlClient"/></connectionStrings>

(5)生成項目,為第(6)步服務

(6)右擊“Controllers"文件夾,選擇”添加控制器“,如圖:

單擊確定后,會在Controllers文件夾下生成一個StudentController類,而且在Views文件夾下生成Student子文件夾,其中包含5個.cshtml文件,如圖:

(7)修改Global.asax.cs的默認路由:

routes.MapRoute( "Default", // 路由名稱 "{controller}/{action}/{id}", // 帶有參數的 URL new { controller = "Student", action = "Index", id = UrlParameter.Optional } // 參數默認值 );

(8)最后,單擊”調試“菜單,選擇”啟動調試“,或直接按F5.會看到如下效果:

(9)可以單擊”Create New"超鏈接,向數據庫添加一條記錄

(10)此時可以打開數據庫服務器,會發現自動創建了MyStudent的數據庫(對應連接字符串中的數據庫)和StudentInfoes表(是模型類名稱的復數形式,表中的各字段分別對應模型類中的屬性,此處要特別注意:ID屬性會自動對應表中的自增長主鍵列。

以上方法需要注意的地方:

(1)web.config中連接字符串,providerName要提供,否則報錯。

(2)模型的ID屬性是固定的, 要不就要用元數據聲明,EF4.1會自動將之映射為表的主鍵(自增長)。

(3)數據庫實體上下文名稱一般與連接字符串name屬性的值相同,但本文中不同(數據庫實體上下文是StuDBContext,連接字符串名稱:DataConn),如果相同,那么實體上下文類可以不提供構造函數。如果不相同,如本例中,可以為實體上下文添加構造函數,并調用父類構造函數,在base()中傳遞與實體上下文類名不同的連接字符串名稱(本例中時DataConn,如步驟(2)紅色標注)

________________________________________________________________________________________________________________________________________

下面演示第2種情形:先創建數據庫模式,然后生成模型

(1)在SQL SERVER 2005/2008服務器上創建數據庫MyStudent,并添加一張表StudentInfoes(也可以在VS中服務器資源管理器中操作)

表的結構如下;

(2)創建ASP.NET MVC3/4項目(使用空模板)

(3)在Models文件夾中添加實體上下文類:StuDBContext

public class StuDBContext:DbContext { public StuDBContext() : base("DataConn") { }

public DbSet<StudentInfo> Students { get; set; } }

(4)在Models文件夾中添加實體類:StudentInfo

public class StudentInfo { public int ID { get; set; } public string StuNO { get; set; } public string StuName { get; set; } public string StuPhoto { get; set; } public DateTime StuBirthday { get; set; } public string StuAddress { get; set; } }

(5)在web.config中配置連接字符串:

<connectionStrings><!--<add name="StuDBContext" connectionString="server=(local);database=MyStudent;uid=(登錄賬戶);pwd=(登錄密碼)" providerName="System.Data.SqlClient"/>--><add name="DataConn" connectionString="server=(local);database=MyStudent;uid=(登錄賬戶);pwd=(登錄密碼)" providerName="System.Data.SqlClient"/></connectionStrings>

(6)生成項目解決方案,為第(7)步服務

(7)在Controllers文件夾下添加StudentController類,如圖:

單擊添加后,會創建與第一種情形同樣的項目文件結構。如上面所示。

(8)修改路由:

routes.MapRoute( "Default", // 路由名稱 "{controller}/{action}/{id}", // 帶有參數的 URL new { controller = "Student", action = "Index", id = UrlParameter.Optional } // 參數默認值 );

(9)啟動調試,預覽效果如下:

對比兩種方式,有如下區別:自動生成數據庫表的字段類型可能與自定義的不一致。

無論是通過代碼生成數據庫,還是先創建數據庫,再創建模型,都需要了解他們之間的映射關系(即EF作為ORM框架的作用),你會發現EF4.1作為ORM框架,遵循很多約定(Convention),而ASP.NET MVC推崇的很重要的一條原則就是:約定先于配置,可謂不謀而合。

轉載自:http://blog.csdn.net/sdtsfhh/article/details/8141242


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
自拍偷拍亚洲在线| 少妇久久久久久| 国产va免费精品高清在线| 色与欲影视天天看综合网| 韩日精品中文字幕| 97国产精品视频人人做人人爱| 日韩欧美有码在线| 成人精品视频99在线观看免费| 日韩毛片中文字幕| 亚洲第一偷拍网| 国产精品久久久久久久久久久不卡| 欧美另类极品videosbestfree| 欧美色视频日本高清在线观看| 成人免费观看49www在线观看| 亚洲色图在线观看| 九九热精品在线| 欧美成人精品在线视频| 日韩精品中文字幕在线观看| 亚洲国产精品99久久| 久久久久久久国产精品| 91影视免费在线观看| 丝袜亚洲另类欧美重口| 国产成人一区二区三区电影| 欧美激情a∨在线视频播放| 色综合久久久久久中文网| 永久555www成人免费| 欧美午夜宅男影院在线观看| 欧美精品videos性欧美| 米奇精品一区二区三区在线观看| 97国产精品人人爽人人做| 国产精自产拍久久久久久蜜| 亚洲自拍偷拍福利| 搡老女人一区二区三区视频tv| 欧美日韩免费一区| 国产欧美最新羞羞视频在线观看| 在线观看亚洲视频| 亚洲精品视频网上网址在线观看| 欧美成人中文字幕在线| 国产福利精品视频| 久久久精品国产网站| 亚洲第一综合天堂另类专| 欧美贵妇videos办公室| 97人人爽人人喊人人模波多| 国产精品国产三级国产aⅴ9色| 欧美大片网站在线观看| 97在线视频观看| 久久伊人91精品综合网站| 伊人一区二区三区久久精品| 91亚洲人电影| 亚洲精品98久久久久久中文字幕| 日本在线精品视频| 精品国偷自产在线视频99| 色偷偷av亚洲男人的天堂| 亚洲色图校园春色| 国产一区二区三区丝袜| xxxx欧美18另类的高清| 国产成人一区二区三区小说| 国产综合在线观看视频| 欧美激情乱人伦| 欧美在线视频观看| 欧美成人在线免费| 91精品国产高清久久久久久| 夜夜嗨av色一区二区不卡| 色综合91久久精品中文字幕| 2019中文字幕全在线观看| 91精品成人久久| 欧美成人精品在线视频| 国产精品丝袜久久久久久高清| 北条麻妃99精品青青久久| 97视频免费在线看| 日韩精品福利网站| www.亚洲免费视频| 久久久91精品国产| 欧美激情视频网址| 欧美肥臀大乳一区二区免费视频| 欧美黄色片视频| 欧美日韩在线观看视频小说| 亚洲一区二区三区视频| 国产视频综合在线| 欧美一级在线播放| 亚洲精品自产拍| 久久亚洲综合国产精品99麻豆精品福利| 国产精品九九久久久久久久| 国产精品男女猛烈高潮激情| 91精品国产91久久| 奇米一区二区三区四区久久| 欧美日韩中文字幕在线视频| 国产精品自拍网| 一个人www欧美| 亚洲欧美日韩图片| 亚洲精品电影网在线观看| 中文字幕亚洲字幕| 国产精品美女久久久久久免费| 欧美另类精品xxxx孕妇| 亚洲福利视频网| 久久综合久久美利坚合众国| 欧美另类极品videosbestfree| 日韩av男人的天堂| 日韩av手机在线看| 日本精品久久久久影院| 久久精品美女视频网站| 中文字幕在线看视频国产欧美| 国产精品高潮粉嫩av| 国产精品视频网| 精品在线小视频| 热久久免费国产视频| 亚洲欧美日韩精品久久奇米色影视| 亚洲精品免费一区二区三区| 色樱桃影院亚洲精品影院| 欧美在线视频一二三| 欧美高清videos高潮hd| 成人免费淫片视频软件| 日韩成人xxxx| 欧美成人高清视频| 国产亚洲欧美日韩一区二区| 不用播放器成人网| 日韩大片在线观看视频| 欧美一乱一性一交一视频| 国产精品久久网| 成人乱人伦精品视频在线观看| 国产午夜精品美女视频明星a级| 国产精品女人久久久久久| 亚洲国产小视频| 久久激情视频免费观看| 日韩欧美一区二区三区久久| 国产视频精品va久久久久久| 这里只有精品视频| 中文字幕日韩专区| 国产区精品在线观看| 亚洲一区二区三区在线免费观看| 亚州欧美日韩中文视频| 黑人巨大精品欧美一区二区一视频| 亚洲欧洲自拍偷拍| 92福利视频午夜1000合集在线观看| 另类天堂视频在线观看| 久久久久成人精品| 久久精品久久久久| 欧美国产视频一区二区| 亚洲理论在线a中文字幕| 欧美激情欧美狂野欧美精品| 成人h片在线播放免费网站| 午夜精品久久久久久久久久久久久| 亚洲а∨天堂久久精品9966| 欧美日韩免费在线| 精品亚洲一区二区三区在线播放| 中文字幕在线视频日韩| 岛国av一区二区| 久久久欧美一区二区| 91精品国产91久久久久久久久| 国产午夜精品久久久| 欧美成人一区二区三区电影| 亚洲影影院av| 91精品久久久久久久久久久久久| 青青草99啪国产免费| 在线观看国产精品91| 美日韩精品免费观看视频| 91久热免费在线视频| 国产亚洲欧美视频| 亚洲a中文字幕| 亚洲欧美在线一区二区| 国产剧情久久久久久| 欧美日韩ab片| 91热精品视频| 国产91精品不卡视频|