国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

淺析.NET平臺下數(shù)據(jù)庫生成技術(shù)

2015-05-08 11:12馬丁
電腦知識與技術(shù) 2015年7期

馬丁

摘要:數(shù)據(jù)庫技術(shù)在當(dāng)今已經(jīng)深入到各個(gè)領(lǐng)域,已經(jīng)成為現(xiàn)代計(jì)算機(jī)信息系統(tǒng)和應(yīng)用系統(tǒng)的基石,該文介紹了在.NET平臺下幾種數(shù)據(jù)庫建立的方法,著重介紹使用Code First方式來建立數(shù)據(jù)庫,最后對上述建立數(shù)據(jù)庫的方法做了總結(jié)。

關(guān)鍵詞:MVC;EF;Code First

中圖分類號:TP367 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2015)07-0013-03

Abstract: In today's database technology has penetrated into various fields, has become the cornerstone of modern computer information system and application system, this paper introduces the method of building several database under the.NET platform, focuses on using Code First to establish database, finally has made the summary to the method of the establishment of the database.

Key words: MVC; EF; code first

數(shù)據(jù)庫(Database)是按照數(shù)據(jù)結(jié)構(gòu)來組織、存儲和管理數(shù)據(jù)的倉庫,它產(chǎn)生于距今六十多年前,隨著信息技術(shù)和市場的發(fā)展,特別是二十世紀(jì)九十年代以后,數(shù)據(jù)管理不再僅僅是存儲和管理數(shù)據(jù),而轉(zhuǎn)變成用戶所需要的各種數(shù)據(jù)管理的方式。

在信息化社會,充分有效地管理和利用各類信息資源,是進(jìn)行科學(xué)研究和決策管理的前提條件。數(shù)據(jù)庫技術(shù)是管理信息系統(tǒng)、辦公自動(dòng)化系統(tǒng)、決策支持系統(tǒng)等各類信息系統(tǒng)的核心部分,是進(jìn)行科學(xué)研究和決策管理的重要技術(shù)手段。

1 通用數(shù)據(jù)庫建立方法

數(shù)據(jù)庫存在多種定義,可以認(rèn)為是數(shù)據(jù)的集合,也可以認(rèn)為是為了實(shí)現(xiàn)一定的目標(biāo),而按某種規(guī)則組織起來的數(shù)據(jù)的集合,現(xiàn)階段最流行的數(shù)據(jù)庫為關(guān)系數(shù)據(jù)庫。它具有以下四個(gè)特點(diǎn):1)數(shù)據(jù)庫中的數(shù)據(jù)集組織被稱為“表”。2)表一般由行和列組成。3)表中每一行表示一條記錄。4)一條記錄可以包含字段信息和值。

1.1 使用SQL Server 建立數(shù)據(jù)庫

以MS SQL Server為例,首先進(jìn)入到SQL Server Manage里,新建一個(gè)SQL腳本,里面手動(dòng)1添加我們所需要的存儲數(shù)據(jù)字段,腳本如圖1。

1.2 創(chuàng)建連接字符串并連接SQL Server數(shù)據(jù)庫

Microsoft SQL Server 數(shù)據(jù)庫是當(dāng)前比較流行和常用的數(shù)據(jù)庫之一,應(yīng)用非常廣泛,特別是在比較大型的網(wǎng)絡(luò)應(yīng)用系統(tǒng)中,都采用Microsoft SQL Server系列數(shù)據(jù)庫作為網(wǎng)絡(luò)應(yīng)用系統(tǒng)數(shù)據(jù)庫。

在數(shù)據(jù)庫腳本寫好以后,我們必須創(chuàng)建連接字符串,指定服務(wù)器的名稱,數(shù)據(jù)庫的名稱,用戶名及密碼,必須顯示地寫明SQL Server的用戶ID和密碼,當(dāng)Integrated Security屬性為真時(shí),如果Integrated Security屬性為假時(shí),系統(tǒng)將會禁用Windows身份驗(yàn)證。至此,我們能夠成功地將數(shù)據(jù)庫連接起來了。

1.3 ADO.NET

ADO.NET是在.NET平臺下建立的,是一個(gè)COM組建庫,它可以對Oracle、 Microsoft SQL Server等數(shù)據(jù)源進(jìn)行訪問。Java,c#,python等各種應(yīng)用程序可以通過使用ADO.NET來訪問到這些數(shù)據(jù)源,通過它,我們可以增添、刪除、修改和查詢數(shù)據(jù)源中的數(shù)據(jù),ADO.NET采用的是XML格式的數(shù)據(jù)傳輸方式,所以提高了數(shù)據(jù)傳輸使用平臺的易用性,任何可以讀取XML格式的應(yīng)用程序都可以通過該平臺進(jìn)行數(shù)據(jù)的處理。

形象地講,ADO.NET像一個(gè)通用水管連接了數(shù)據(jù)源,它通過暴漏編寫出來的服務(wù)類來向程序員提供數(shù)據(jù)訪問的方法。程序員也可以使用其他語言來開發(fā),而不僅限于.NET平臺下的語言。

連接池里存放了一些與數(shù)據(jù)源的物理連接,當(dāng)程序需要連接服務(wù)器時(shí),只需要去連接池里取出一個(gè)空閑的連接就可以了,這樣可以極大地減少連接數(shù)據(jù)庫的開銷。

2 Entity Framework下的數(shù)據(jù)庫生成

面向?qū)ο髷?shù)據(jù)庫支持面向?qū)ο蟮臄?shù)據(jù)庫模型,一個(gè)數(shù)據(jù)庫就是一個(gè)由面向?qū)ο蠖x的對象的集合。面向?qū)ο竽P偷暮诵母拍钪饕袑ο蠛蛯ο髽?biāo)識、封裝、類、類層次、消息、繼承。微軟已經(jīng)將開發(fā)了Entity Framework來支持面向?qū)ο髷?shù)據(jù)庫的建立。

2.1 Entity Framework簡介

一直以來,程序員若想建議一個(gè)完成的系統(tǒng),他第一個(gè)必須要考慮的是數(shù)據(jù)庫的建立。在任何一個(gè)可以連接數(shù)據(jù)源的應(yīng)用系統(tǒng)中,程序員必須要學(xué)會和數(shù)據(jù)庫進(jìn)行建立連接,交流信息,即系統(tǒng)的締造者需要學(xué)習(xí)最底層的數(shù)據(jù)源操作命令,有沒有一種在設(shè)計(jì)系統(tǒng)業(yè)務(wù)領(lǐng)域模型的時(shí)候順便就生成了數(shù)據(jù)庫模型的方法呢,經(jīng)過業(yè)界人士的研究,對象關(guān)系映射技術(shù)由此而生,它可以讓應(yīng)用程序使用面向?qū)ο蟮姆椒ㄈミB接和使用數(shù)據(jù)源,微軟設(shè)計(jì)的這套對象關(guān)系映射技術(shù)就是ADO.NET Entity Framework。

Entity Framework采用了面向?qū)ο蟮睦昧顺橄蠡瘮?shù)據(jù)結(jié)構(gòu)的方式,將數(shù)據(jù)庫對象轉(zhuǎn)化成了應(yīng)用程序?qū)ο?,即Entity。屬性(Property)即為數(shù)據(jù)字段,該框架包含了概念層,中間層和存數(shù)層,其中概念曾負(fù)責(zé)對該層以上的屬性進(jìn)行訪問。中間層用來連接概念曾和存儲層。存儲層負(fù)責(zé)對實(shí)際不同的數(shù)據(jù)源訪問和SQL的產(chǎn)生。

2.2 Code First

Entity Framework 4中存在三種工作方式,他們分別為:Code First、Model First和Database First。其中本文要討論的Code First就是新增的一種方式。

CodeFirst是EntityFramework的一種技術(shù)手段,因?yàn)閭鹘y(tǒng)編程方式都是先建立數(shù)據(jù)庫,然后根據(jù)數(shù)據(jù)庫模型為應(yīng)用程序建模,再進(jìn)行開發(fā);CodeFirst從字面上理解就是代碼先行,先在程序中建立要映射到數(shù)據(jù)庫的實(shí)體結(jié)構(gòu),然后EntityFramework可以根據(jù)實(shí)體結(jié)構(gòu)生成所對應(yīng)的數(shù)據(jù)庫。

EF框架中的導(dǎo)航屬性提供了一種在實(shí)體-實(shí)體聯(lián)系的方法,實(shí)體通過使用導(dǎo)航屬性,可以對實(shí)體之間的關(guān)系進(jìn)行管理。對于導(dǎo)航屬性-主體主鍵、主體類-主鍵屬性、主體主鍵屬性這些格式,這些數(shù)據(jù)類型與主體主鍵屬性都相同,都包括標(biāo)識以來對象的類型的外鍵屬性。

當(dāng)依賴實(shí)體外鍵為空時(shí),CF不對關(guān)系進(jìn)行級聯(lián)刪除。反之則對關(guān)系進(jìn)行級聯(lián)刪除,并在刪除主體時(shí),將該外鍵改為空。通過使用 暴漏在外的應(yīng)用程序接口,可以覆蓋由約定檢測的多重性和級聯(lián)刪除行為。

打開VS2010新建一個(gè)MVC4項(xiàng)目,注意環(huán)境要設(shè)為.Net Framework 4。項(xiàng)目命名為StepOneEducation。首先在Model中創(chuàng)建一個(gè)Member類,其次我們再建立一個(gè)新類,命名為MemberEntities,它繼承與DBContext,負(fù)責(zé)與數(shù)據(jù)庫溝通。

接下來我們在Control里添加一個(gè)控制器,命名為MemberController,里面會自動(dòng)生成增、刪、改、查的基本功能。

經(jīng)過編譯后,視圖會自動(dòng)添加在View類下,至此,我們所有的數(shù)據(jù)庫建立工作已經(jīng)全部完成,雖然我們沒有寫一行SQL腳本語句,運(yùn)行一下程序,便可看到最原始的View視圖,里面包含著對原始數(shù)據(jù)的增刪改查操作。

3 結(jié)束語

現(xiàn)有的關(guān)系型數(shù)據(jù)庫無法描述世界的實(shí)體,面向?qū)ο蟮臄?shù)據(jù)模型由于吸收了已經(jīng)成熟的面向?qū)ο蟪绦蛟O(shè)計(jì)方法學(xué)的核心概念和基本思想,使得它符合人類認(rèn)識世界的一般方法,更適合描述現(xiàn)實(shí)世界,著重介紹了如何使用Code First進(jìn)行數(shù)據(jù)庫開發(fā)。我們用類定義一個(gè)模型,然后使用該模型創(chuàng)建一個(gè)數(shù)據(jù)庫,然后存儲和檢索數(shù)據(jù)。

參考文獻(xiàn):

[1] 劉哇勇.http://www.cnblogs.com/Wayou/archive/2012/09/20/EF_CodeFirst.html.

[2] 梁文菲,黃厚寬.對象/關(guān)系映射技術(shù)與面向?qū)ο髷?shù)據(jù)庫技術(shù)比較分析[J].中國科技信息, 2006(21).

[3] 吳超飛.信息管理中數(shù)據(jù)庫技術(shù)實(shí)踐應(yīng)用分析[J].計(jì)算機(jī)光盤軟件與應(yīng)用, 2012(4).