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

ADO.NET Entity Fram ew ork建模技術研究

2010-08-15 00:52:53謝日星武漢軟件工程職業學院湖北武漢430205
科技傳播 2010年21期
關鍵詞:數據庫

謝日星武漢軟件工程職業學院,湖北武漢 430205

1 En tity Fram ew o rk簡介

ADO.NET Entity Framework是微軟以ADO.NET為基礎所發展出來的對象關系對應(O/R Mapping)解決方案。Entity Framework以Entity Data Model(EDM)為主,利用抽象化數據結構方式,將數據庫對象轉換成應用程序對象,庫表字段轉換為屬性,并系轉換為關聯系統,把數據庫的E/R模型轉換成對象模型,使開發人員通過對概念應用程序模型編程來創建數據訪問應用程序,以此降低面向數據的應用程序所需要的開發量,并減輕系統維護工作。

2 En tity Fram ew o rk建模

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

2.1 帶有有效載荷的多對多關系建模

在帶有有效栽花的多對多關系數據庫中,關系表除了主鍵外,還有其他數據字段。在這種關系中,直接把表映射到實體模型中,兩實體表自動創建對應的實體類型,而關系表也被映射成為一實體類型,在此實體類型中除了原有屬性名,還有對應兩實體表的導航屬性,可分別通過1對多關系進行對象導航。

2.2 自引用關系建模

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

2.3 跨表實體建模

在數據庫設計過程中,當一個實體的數據由于各種原因為分割在不同表中,而程序開發需要把實體所有數據集合在一個實體類型中。對于這種跨表實體的情況,建模時首先把所有的表都映射到實體模型中,然后調整實體類型,把主要表之外的其它表映射實體類中除主鍵對應屬性外的所有屬性復制到主要表映射實體類型中,然后刪除主要表映射實體類型中的所有導航屬性和其它表實體類型,在刪除其它表實體類型時,不刪除映射存儲模型中的表,最后,在剩下的這一個表映射實體類型中,添加復制得到的所有屬性的映射關系,分別映射到對應的表中的列。在實體操作過程中,映射關系能自動分別處理不同表中的對應數據。

2.4 多實體建模

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

2.5 多表派生建模

數據庫建模完成后,對于有些表存儲另一表中額外信息的情況,可以針對這些表建立派生的類體系結構。首先,把所有表映射到實體模型中,分別映射成一個實體類型,然后刪除實體類型之間的關聯,再為基類(Business)添加繼承,分別設置派生類為Retails和eCommerces,再刪除派生類中的BusinessId屬性,則根據表的結構完成類的體系結構建模,對Retails和eCommerces類型對象的操作會自動訪問庫表Retails、eCommerces及對應的Business表中對應記錄。

2.6 表分割建模

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

3 結論

POCO技術要求盡可能的應用簡單的類,以實現類型的獨立性,本文所討論的Entity Framework建模方法則常常需要把表進行分割建模或組合建模,在某些情況下將導致類的體系結構更為復雜,但卻使程序開發更為符合業務的現實情況,能更充分地利用Entity Framework技術的各種技術優勢。

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

猜你喜歡
數據庫
數據庫
財經(2017年15期)2017-07-03 22:40:49
數據庫
財經(2017年2期)2017-03-10 14:35:35
兩種新的非確定數據庫上的Top-K查詢
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
數據庫
財經(2015年3期)2015-06-09 17:41:31
數據庫
財經(2014年21期)2014-08-18 01:50:18
數據庫
財經(2014年6期)2014-03-12 08:28:19
數據庫
財經(2013年6期)2013-04-29 17:59:30
主站蜘蛛池模板: 极品国产在线| 麻豆精选在线| 另类欧美日韩| 国产成人综合久久| 精品国产欧美精品v| 色欲国产一区二区日韩欧美| 国产欧美日韩va| 欧美日韩资源| 青青热久麻豆精品视频在线观看| 中文字幕日韩久久综合影院| 国产小视频免费| 国产精品页| 国产乱视频网站| 亚洲av中文无码乱人伦在线r| 国产福利一区视频| 毛片基地视频| 91在线无码精品秘九色APP | 久久久波多野结衣av一区二区| 亚洲女同一区二区| a级高清毛片| 免费va国产在线观看| 精品三级网站| 久久精品人人做人人综合试看| 免费毛片a| 99er这里只有精品| 国产精品私拍在线爆乳| 日本在线免费网站| 日韩视频精品在线| 中文一级毛片| 国产在线精品人成导航| 精品一区二区三区无码视频无码| 久久国产精品国产自线拍| 国产欧美日韩视频怡春院| 人人91人人澡人人妻人人爽| 亚洲国产欧美国产综合久久 | 婷婷六月激情综合一区| 亚洲第一视频网| 国产高清不卡| 夜夜高潮夜夜爽国产伦精品| 99热这里只有精品5| 影音先锋丝袜制服| 国产精品密蕾丝视频| a网站在线观看| 日本亚洲欧美在线| 国产性精品| 青青青视频蜜桃一区二区| 伊人AV天堂| 久久精品娱乐亚洲领先| 欧美一区中文字幕| 日韩精品毛片| 久久成人免费| 国产一二三区在线| 国产日韩久久久久无码精品| AV不卡无码免费一区二区三区| 久久a毛片| 99久久国产综合精品女同| 2020国产在线视精品在| 国产成人免费手机在线观看视频| 亚洲无线国产观看| 国产激情无码一区二区APP| 欧美亚洲欧美| 国产综合在线观看视频| 国产成人永久免费视频| 国产成人精品综合| 一个色综合久久| 国产三级毛片| 久久国产拍爱| 国产在线视频自拍| 久久免费观看视频| 国产人成乱码视频免费观看| 久久精品免费国产大片| 国产视频a| 日韩免费视频播播| 老司机久久精品视频| 国产日韩精品一区在线不卡| 亚洲丝袜第一页| www.91在线播放| 丁香婷婷激情网| 久久精品国产一区二区小说| 精品免费在线视频| 一级成人a做片免费| 国产一二三区在线|