九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項超值服

開通VIP
MVC-05 Model(1)
MVC-05 Model(1)

在開發(fā)應(yīng)用程序的過程中,經(jīng)常需要處理許多大大小小的數(shù)據(jù),例如,SQL Server數(shù)據(jù)庫存取、連接AD(Active Directory)數(shù)據(jù)庫進(jìn)行驗證、調(diào)用外部Web Service取得數(shù)據(jù)等。除了訪問數(shù)據(jù)外,也經(jīng)常需要對數(shù)據(jù)做成格式驗證、邏輯驗證等等。

一、Model的責(zé)任

在ASP.NET MVC中,Model負(fù)責(zé)所有與“數(shù)據(jù)”有關(guān)的任務(wù)。所以,不管是Controller或是View,都會參考到Model里定義的所有數(shù)據(jù)類型,或是用到Model里定義的一些數(shù)據(jù)操作方法,例如,新增、刪除、更改、查詢等。

在Model里的程序,由于“只能”跟數(shù)據(jù)域商業(yè)邏輯有關(guān),所以就不負(fù)責(zé)處理所有與數(shù)據(jù)處理無關(guān)的事,或是用來控制網(wǎng)站的運(yùn)行流程等,而是專注于如何有效率地提供數(shù)據(jù)訪問機(jī)制、交易環(huán)境、數(shù)據(jù)格式驗證、商業(yè)邏輯驗證等工作。

由于Model的獨(dú)立性非常高,如果你在一個Visual Studio方案中,有多個要開發(fā)的項目,比如有時我們會將Model獨(dú)立成一個項目,讓Model項目共享于不同的項目之間。

二、開發(fā)Model的基本觀念

當(dāng)采用ASP.NET MVC框架時,雖然在Model層的開發(fā)技術(shù)繁多,而且ASP.NET MVC也保留了許多彈性,讓各個不同的數(shù)據(jù)訪問技術(shù)都能跟ASP.NET MVC集成。不過,若要充分發(fā)揮ASP.NET MVC快速開發(fā)的優(yōu)勢,還是建議讀者在Model層采用ORM信息訪問技術(shù)來開發(fā),例如,LINQ to SQL、Entity Framework、NHibernate、Telerik OpenAccess ORM等。

1.何謂ORM

ORM的全名是Object Relational Mapping,中文翻譯為“對象關(guān)系映射”,是一種編程技術(shù),用于實現(xiàn)面向?qū)ο蟪绦蛘Z言里,不同類型系統(tǒng)之間的數(shù)據(jù)轉(zhuǎn)換。通常在實務(wù)的應(yīng)用上,大多數(shù)情況都會應(yīng)用在數(shù)據(jù)庫與面向?qū)ο蟪绦蜃詸z的類型轉(zhuǎn)換,例如,SQL Server中的關(guān)系型數(shù)據(jù)與.NET類型對象之間的轉(zhuǎn)換等。

換句話說,ORM是將結(jié)構(gòu)化的關(guān)系型數(shù)據(jù),映射成面向?qū)ο竽P?。如果以Entity Framework來說,就是試圖將關(guān)系數(shù)據(jù)庫的各種數(shù)據(jù)轉(zhuǎn)換成.NET原生對象,或是將.NET模型類對象數(shù)據(jù)轉(zhuǎn)換成關(guān)系型數(shù)據(jù)。

使用ORM開發(fā)技術(shù)跟常規(guī)使用ADO.NET開發(fā)技術(shù)最大的差異,就在于操作“數(shù)據(jù)”的方便性與彈性。以往在使用ADO.NET開發(fā)數(shù)據(jù)訪問程序時,開發(fā)人員通常必須先了解完整的數(shù)據(jù)庫操作方法,才能順利地從數(shù)據(jù)庫取得數(shù)據(jù),或是將對象的數(shù)據(jù)保存到數(shù)據(jù)庫中。例如,要編寫操作SQL Server數(shù)據(jù)庫中的數(shù)據(jù),就必須先學(xué)習(xí)T-SQL的使用方式;若要操作Oracle數(shù)據(jù)庫中的數(shù)據(jù),也必須先學(xué)習(xí)Oracle的SQL查詢語法。學(xué)會之后還要學(xué)習(xí)各式ADO.NET的標(biāo)準(zhǔn)API,才能知道如何正確地與數(shù)據(jù)庫交互,明白是要進(jìn)行查詢數(shù)據(jù)、更新數(shù)據(jù)、新增數(shù)據(jù)還是刪除數(shù)據(jù)等。不同的數(shù)據(jù)庫,在設(shè)計邏輯與SQL語法上都會有些小差異,而導(dǎo)致開發(fā)數(shù)據(jù)訪問的程序代碼缺乏效率。如此一來,也有違“關(guān)注點分離”的特性,若是套用“關(guān)注點分離”特性,照理說在開發(fā).NET應(yīng)用程序時,應(yīng)該專注在對象的操作上,而非數(shù)據(jù)庫數(shù)據(jù)的處理,當(dāng)采用ORM開發(fā)技術(shù)后,便可以幫助我們達(dá)到這個目的。

Entity Framwork是建構(gòu)在ADO.NET數(shù)據(jù)提供者模型之上,也就是說,只要.NET運(yùn)行環(huán)境能夠使用ADO.NET連接數(shù)據(jù)庫,Enity Framework便能順利支持,在.NET運(yùn)行環(huán)境下默認(rèn)已經(jīng)支持SQL Server 2005以上版本,如果要支持其他如Oracle、MySQL、SQLite、PostgreSQL等各式各樣的關(guān)系數(shù)據(jù)庫基本上也是沒問題的,只要操作出相對應(yīng)的Entity Framework數(shù)據(jù)提供者即可。

2.數(shù)據(jù)庫開發(fā)模式

采用Entity Framework或其他ORM開發(fā)極速,有時還可區(qū)分三種不同的開發(fā)模式,分別是數(shù)據(jù)庫優(yōu)先開發(fā)模式(Database First Development)、模型優(yōu)先開發(fā)模式(Model First Development)、程序代碼優(yōu)先開發(fā)模式(Code First Development)。

(1)數(shù)據(jù)庫優(yōu)先開發(fā)模式

顧名思義,數(shù)據(jù)庫優(yōu)先開發(fā)模式就是針對數(shù)據(jù)庫進(jìn)行設(shè)計,以數(shù)據(jù)庫里定義的數(shù)據(jù)結(jié)構(gòu)(Schema)為主。當(dāng)應(yīng)用程序在卡法的時候,必須依據(jù)數(shù)據(jù)庫的結(jié)構(gòu)設(shè)計來進(jìn)行開發(fā),使用的ORM框架必須能夠依據(jù)數(shù)據(jù)庫結(jié)構(gòu)設(shè)計生成相應(yīng)的對象模型,才能提供給應(yīng)用程序來使用。

(2)模型優(yōu)先開發(fā)模式

模型優(yōu)先開發(fā)模式是指在ORM架構(gòu)中創(chuàng)建對象模型,讓應(yīng)用程序能夠依據(jù)這些對象模型進(jìn)行開發(fā)。需要實際訪問數(shù)據(jù)庫時,只要通過Entity Framework數(shù)據(jù)提供者的協(xié)助,動態(tài)生成相應(yīng)的SQL語法,即可創(chuàng)建出完整的數(shù)據(jù)庫。

一般來說,支持模型優(yōu)先開發(fā)模式的ORM框架,都會有相對應(yīng)的程序代碼生成技術(shù),在模型被創(chuàng)建的同時自動生成相對應(yīng)的程序代碼。以Entity Framework為例,在搭配Visual Studio的幫助下,即可通過Entity Framework設(shè)計工具,幫你創(chuàng)建對象模型,只要保存后,就會自動生成相關(guān)程序代碼。

(3)程序代碼優(yōu)先開發(fā)模式

程序代碼優(yōu)先開發(fā)模式是一種非常新穎的開發(fā)模式,也就是讓開發(fā)人員直接依據(jù)需求,編寫類別與屬性(程序代碼),而這些撰寫的類別與屬性正是定義出應(yīng)用程序所需的數(shù)據(jù)模型,并且通過ORM框架的管理,便可讓這些POCO類型,轉(zhuǎn)換成實體模型(Entity Model)。

直到程序開始運(yùn)行后,通過ORM框架,就可以自動依據(jù)這些類別,定義創(chuàng)建數(shù)據(jù)庫、表格、字段與其他數(shù)據(jù)結(jié)構(gòu)(Schema)。這樣開發(fā)人員便可以完全不需要接觸數(shù)據(jù)庫這一端的各種管理工作(如創(chuàng)建表格字段、設(shè)計數(shù)據(jù)表、設(shè)計數(shù)據(jù)表關(guān)聯(lián)等),也不用學(xué)習(xí)各式數(shù)據(jù)庫的使用差異(如SQL Server、Oracle、MySQL、SQLite等),省去這些工作之后,開發(fā)人員更能專注在應(yīng)用程序的需求開發(fā),而不會因為不熟悉數(shù)據(jù)庫操作而束手束腳。

三、LocalDB介紹

微軟最新推出的SQL Server 2012 Express LocalDB,是一種SQL Server Express的運(yùn)行模式,特別適合在開發(fā)環(huán)境使用,也內(nèi)建在Visual Studio 2012之中。

1.LocalDB的運(yùn)作方式

在安裝好SQL Server 2012 Express LocalDB之后,默認(rèn)會有個實例名,為v11.0。

2.如何連接LocalDB實例

(1)使用Management Studio連接LocalDB

在連接對話框中輸入正確服務(wù)器名稱,(localdb)\v11.0。只有新版的SQL Server 2012 Management Studio才能識別這組新的服務(wù)器名稱。

(2)通過.NET程序連接LocalDB實例

連接字符串如下。

3.管理LocalDB自動實例

4.管理LocalDB具名實例

四、使用Code First創(chuàng)建數(shù)據(jù)模型

ASP.NET MVC4與當(dāng)前最新版的Entity Framework 5同時上市,尤其強(qiáng)化了程序代碼優(yōu)先開發(fā)模式的支持。

1.創(chuàng)建數(shù)據(jù)模型

(1)聲明主鍵

要想在Entity Framework聲明主鍵,最簡單的方式就是不要聲明,直接把屬性名稱設(shè)置為Id或是蘇醒名稱中共有“Id”也可以,并將該屬性指派為int類型即可。EF Code First會自動識別出這個字段就是表格里的主鍵,并且會加上自動編號的識別規(guī)格設(shè)置。

(2)聲明必填字段

(3)聲明允許NULL字段

(4)聲明字段長度

(5)聲明字段默認(rèn)值

(6)聲明特定屬性不是數(shù)據(jù)中的字段

2.創(chuàng)建數(shù)據(jù)上下文類

3.設(shè)計模型之間的關(guān)聯(lián)性

4.啟用延遲裝入特性

五、使用Code First數(shù)據(jù)庫遷移

六、使用ViewModel數(shù)據(jù)視圖模型

七、擴(kuò)充數(shù)據(jù)模型

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
ADO.NET Entity Framework 學(xué)習(xí) 1 - VS2010學(xué)習(xí) - IC窗口
靈動思緒EF(Entity FrameWork)
EF框架
[ASP.NET MVC 小牛之路]06 - 使用 Entity Framework Code First
ADO.NET Entity Framework
.NET(C 或者ASP.NET)的框架(一)
更多類似文章 >>
生活服務(wù)
熱點新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服