999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

ADO.NET Entity Fram ew ork建模技術(shù)研究

2010-08-15 00:52:53謝日星武漢軟件工程職業(yè)學(xué)院湖北武漢430205
科技傳播 2010年21期
關(guān)鍵詞:數(shù)據(jù)庫

謝日星武漢軟件工程職業(yè)學(xué)院,湖北武漢 430205

1 En tity Fram ew o rk簡介

ADO.NET Entity Framework是微軟以ADO.NET為基礎(chǔ)所發(fā)展出來的對(duì)象關(guān)系對(duì)應(yīng)(O/R Mapping)解決方案。Entity Framework以Entity Data Model(EDM)為主,利用抽象化數(shù)據(jù)結(jié)構(gòu)方式,將數(shù)據(jù)庫對(duì)象轉(zhuǎn)換成應(yīng)用程序?qū)ο螅瑤毂碜侄无D(zhuǎn)換為屬性,并系轉(zhuǎn)換為關(guān)聯(lián)系統(tǒng),把數(shù)據(jù)庫的E/R模型轉(zhuǎn)換成對(duì)象模型,使開發(fā)人員通過對(duì)概念應(yīng)用程序模型編程來創(chuàng)建數(shù)據(jù)訪問應(yīng)用程序,以此降低面向數(shù)據(jù)的應(yīng)用程序所需要的開發(fā)量,并減輕系統(tǒng)維護(hù)工作。

2 En tity Fram ew o rk建模

Entity Framework技術(shù)的應(yīng)用中,可針對(duì)數(shù)據(jù)庫中各個(gè)表按照1:1映射生成模型和映射信息,在代碼中直接對(duì)表中數(shù)據(jù)進(jìn)行增、刪、改、查操作。但在實(shí)際應(yīng)用中,這種簡單的處理方式不利于進(jìn)一步降低程序開發(fā)工作量,部分情況還違背了“程序開發(fā)以應(yīng)用為中心的概念模型來工作”的理念,對(duì)象的概念不清晰。為此,對(duì)幾種常用的數(shù)據(jù)庫情景的建模方法進(jìn)行介紹。

2.1 帶有有效載荷的多對(duì)多關(guān)系建模

在帶有有效栽花的多對(duì)多關(guān)系數(shù)據(jù)庫中,關(guān)系表除了主鍵外,還有其他數(shù)據(jù)字段。在這種關(guān)系中,直接把表映射到實(shí)體模型中,兩實(shí)體表自動(dòng)創(chuàng)建對(duì)應(yīng)的實(shí)體類型,而關(guān)系表也被映射成為一實(shí)體類型,在此實(shí)體類型中除了原有屬性名,還有對(duì)應(yīng)兩實(shí)體表的導(dǎo)航屬性,可分別通過1對(duì)多關(guān)系進(jìn)行對(duì)象導(dǎo)航。

2.2 自引用關(guān)系建模

對(duì)于分類表之類的自引用表,把表映射成為實(shí)體類型后,其中將包含兩個(gè)導(dǎo)航屬性,分別對(duì)應(yīng)父、子對(duì)象,其中父對(duì)象為1端,多端為子對(duì)象集合,因此分別把1端改名為父端名稱如ParentCategory,多端改名為子對(duì)象集合名稱如SubCategories。由此兩導(dǎo)航屬性可方便地訪問到對(duì)應(yīng)對(duì)象。

2.3 跨表實(shí)體建模

在數(shù)據(jù)庫設(shè)計(jì)過程中,當(dāng)一個(gè)實(shí)體的數(shù)據(jù)由于各種原因?yàn)榉指钤诓煌碇?,而程序開發(fā)需要把實(shí)體所有數(shù)據(jù)集合在一個(gè)實(shí)體類型中。對(duì)于這種跨表實(shí)體的情況,建模時(shí)首先把所有的表都映射到實(shí)體模型中,然后調(diào)整實(shí)體類型,把主要表之外的其它表映射實(shí)體類中除主鍵對(duì)應(yīng)屬性外的所有屬性復(fù)制到主要表映射實(shí)體類型中,然后刪除主要表映射實(shí)體類型中的所有導(dǎo)航屬性和其它表實(shí)體類型,在刪除其它表實(shí)體類型時(shí),不刪除映射存儲(chǔ)模型中的表,最后,在剩下的這一個(gè)表映射實(shí)體類型中,添加復(fù)制得到的所有屬性的映射關(guān)系,分別映射到對(duì)應(yīng)的表中的列。在實(shí)體操作過程中,映射關(guān)系能自動(dòng)分別處理不同表中的對(duì)應(yīng)數(shù)據(jù)。

2.4 多實(shí)體建模

在表中如果有部分字段內(nèi)容較多并且不常使用,為提高程序性能,訪問表時(shí),一般只訪問表中的部分字段,為此,建模時(shí)必須把表分割成多個(gè)實(shí)體。首先把表映射成一般實(shí)體類型,然后在設(shè)計(jì)器中創(chuàng)建新實(shí)體類型,添加對(duì)應(yīng)原表中主健的屬性,再把原映射實(shí)體類型中不需要的屬性通過“剪切/粘貼”方法移動(dòng)到新實(shí)體類型中,并把新實(shí)體類型中的所有屬性映射到原表對(duì)應(yīng)字段,然后在原實(shí)體類型中添加到新實(shí)體類型的1對(duì)1(或1對(duì)0.1)關(guān)聯(lián)關(guān)系,最后,在添加以新實(shí)體類型為主體的到原實(shí)體類型的引用約束。通過實(shí)體類型訪問數(shù)據(jù)時(shí),兩實(shí)體類型對(duì)象分別訪問其屬性對(duì)應(yīng)的字段數(shù)據(jù)。

2.5 多表派生建模

數(shù)據(jù)庫建模完成后,對(duì)于有些表存儲(chǔ)另一表中額外信息的情況,可以針對(duì)這些表建立派生的類體系結(jié)構(gòu)。首先,把所有表映射到實(shí)體模型中,分別映射成一個(gè)實(shí)體類型,然后刪除實(shí)體類型之間的關(guān)聯(lián),再為基類(Business)添加繼承,分別設(shè)置派生類為Retails和eCommerces,再刪除派生類中的BusinessId屬性,則根據(jù)表的結(jié)構(gòu)完成類的體系結(jié)構(gòu)建模,對(duì)Retails和eCommerces類型對(duì)象的操作會(huì)自動(dòng)訪問庫表Retails、eCommerces及對(duì)應(yīng)的Business表中對(duì)應(yīng)記錄。

2.6 表分割建模

對(duì)于常見的辦公自動(dòng)化系統(tǒng)數(shù)據(jù)庫,由于員工類型不同,而薪水制度不同,其中EmployeeType值為1則為臨時(shí)工,薪水按小時(shí)計(jì)算,Wage字段記錄其每小時(shí)薪水,Salary字段為無效數(shù)據(jù),如果EmployeeType值為2則為正式員工,薪水按月計(jì)算,Salary字段記錄其每月薪水,Wage字段數(shù)據(jù)無效。為更好地實(shí)現(xiàn)在向應(yīng)用編程,分別建立臨時(shí)工和正式員工兩種類型,但兩種類型的數(shù)據(jù)都保存在Employees表中。建模過程首先把Employees表映射到實(shí)體模型中,成為Employees類,然后添加新實(shí)體HourlyEmployee,指定基類為Employees,然后通過“剪切/粘貼”把Employees中的Wage屬性移動(dòng)到HourlyEmployee中,用同樣的方法添加實(shí)體FullTimeEmployee類型;再在HourlyEmployee實(shí)體中,添加映射條件:“EmployeeType = 1”,在FullTimeEmployee實(shí)體中添加映射條件:“EmployeeType = 2”,然后設(shè)置Employees類型為抽象類,并刪除其中的EmployeeType屬性,則HourlyEmployee和FullTimeEmployee自動(dòng)處理EmployeeType字段的值,并能自動(dòng)根據(jù)記錄創(chuàng)建對(duì)應(yīng)類型的對(duì)象。

3 結(jié)論

POCO技術(shù)要求盡可能的應(yīng)用簡單的類,以實(shí)現(xiàn)類型的獨(dú)立性,本文所討論的Entity Framework建模方法則常常需要把表進(jìn)行分割建模或組合建模,在某些情況下將導(dǎo)致類的體系結(jié)構(gòu)更為復(fù)雜,但卻使程序開發(fā)更為符合業(yè)務(wù)的現(xiàn)實(shí)情況,能更充分地利用Entity Framework技術(shù)的各種技術(shù)優(yōu)勢。

[1]微軟公司著.VS2010 MSDN.

猜你喜歡
數(shù)據(jù)庫
數(shù)據(jù)庫
數(shù)據(jù)庫
兩種新的非確定數(shù)據(jù)庫上的Top-K查詢
數(shù)據(jù)庫
數(shù)據(jù)庫
數(shù)據(jù)庫
數(shù)據(jù)庫
數(shù)據(jù)庫
數(shù)據(jù)庫
數(shù)據(jù)庫
主站蜘蛛池模板: 国产精品观看视频免费完整版| 在线中文字幕网| 孕妇高潮太爽了在线观看免费| 久久亚洲综合伊人| 视频一区视频二区中文精品| 国产午夜无码片在线观看网站| 影音先锋亚洲无码| 久久99精品久久久久久不卡| 日韩亚洲综合在线| 日韩精品免费一线在线观看| 亚洲一区二区视频在线观看| 在线亚洲小视频| 国产午夜一级淫片| 毛片一级在线| 国产精品无码AV中文| 久久久久久久久18禁秘| 2020久久国产综合精品swag| 一级黄色欧美| 久久99国产乱子伦精品免| 91九色最新地址| 国产一区二区三区在线无码| 国产精品色婷婷在线观看| 午夜小视频在线| 免费全部高H视频无码无遮掩| 男女男免费视频网站国产| 国产杨幂丝袜av在线播放| 午夜福利在线观看入口| 亚洲AV无码一二区三区在线播放| 国产欧美日韩专区发布| 欧美成人亚洲综合精品欧美激情| 黄色网页在线播放| 福利一区在线| 欧美久久网| 九九视频免费在线观看| 亚洲中文无码av永久伊人| 天天视频在线91频| 91免费国产高清观看| 欧美 国产 人人视频| 99精品免费欧美成人小视频| 国产女人在线视频| 国产精品自在自线免费观看| 成色7777精品在线| 91国内视频在线观看| 国产精品三级av及在线观看| 高清国产va日韩亚洲免费午夜电影| 成人看片欧美一区二区| 日韩东京热无码人妻| 亚洲男人天堂2020| 国产丰满大乳无码免费播放 | 欧美综合成人| 在线观看91香蕉国产免费| 亚洲高清日韩heyzo| 免费看av在线网站网址| 日韩视频免费| 香港一级毛片免费看| 91精品最新国内在线播放| 国产97视频在线| 国产精品美女自慰喷水| 天天摸夜夜操| 国产成人三级在线观看视频| AV色爱天堂网| 一本大道视频精品人妻| 在线观看无码av免费不卡网站| 国产精品密蕾丝视频| 日韩国产无码一区| 91久久夜色精品| 98精品全国免费观看视频| 亚洲国产综合精品一区| 亚洲资源站av无码网址| 欧美a级完整在线观看| vvvv98国产成人综合青青| 亚洲视频无码| 日韩精品欧美国产在线| 欧美在线三级| 免费xxxxx在线观看网站| 欧美亚洲国产日韩电影在线| 久久精品国产精品一区二区| 97色婷婷成人综合在线观看| 韩日无码在线不卡| 蜜臀AVWWW国产天堂| 99国产精品免费观看视频| 欧美精品啪啪|