對于ADO.NET模型進行圖示介紹
ADO.NET模型作為下一代的開發(fā)程序,代號為Orcas。最近微軟推出了ADO.NET模型,涵蓋了VS之前版本的所有功能,快捷鍵也基本完整,與將要發(fā)布的RTM版不會有什么太大的差別。
1. 如果某個應用程序只處理Employees的信息,但我們必須將邏輯數(shù)據(jù)關(guān)系標準化。這樣我們就不得不去關(guān)注數(shù)據(jù)庫表與表之間的關(guān)系(比如雇員的聯(lián)系信息和姓名在不同的表中),我們需要人為地在兩個表中做內(nèi)聯(lián)交叉查詢以得到正確的數(shù)據(jù)。
2. 這里該應用程序僅僅是處理全職雇員(SalariedFlag=1),理想的情況是,我們不應看到其他類型的雇員信息。然而實際上所有的雇員信息都在一個數(shù)據(jù)庫表中,他們是用一個"SalariedFlag"字段來區(qū)分的。ADO.NET模型意味著我們需要關(guān)注如何將不同類型的雇員加以區(qū)分。理想的情況是這樣的:假如我們只需要處理某個數(shù)據(jù)子集,系統(tǒng)只需要呈現(xiàn)這部分子集的數(shù)據(jù)。開發(fā)人員應當能夠通過聲明來指定哪個是需要的數(shù)據(jù)子集。#t#
綜合地說,首先,關(guān)系數(shù)據(jù)模型不能直接匹配應用程序?qū)嶋H的數(shù)據(jù)模型。其次,關(guān)系數(shù)據(jù)模型不能滿足應用程序的實際需要,比如應用程序還需要一些非功能性的需求,這些需求包括操作,數(shù)據(jù)擁有關(guān)系,性能和安全。
為了解決如上問題,ADO.NET引入了Entity Framework,它包含了數(shù)據(jù)模型以及一些設計時和運行時的服務。ADO.NET模型通過Entity Framework提供的更高抽象層,應用程序的數(shù)據(jù)模型就可以直接和數(shù)據(jù)庫的關(guān)系數(shù)據(jù)模型交互。
三個實體類型,ADO.NET模型分別是SalesPerson,SalesOrder和StoreSalesOrder。其中StoreSalesOrder繼承自SalesOrder。
一個關(guān)系: SalesOrder 和 SalesPerson 之間的關(guān)系。
兩個實體集(entity-sets):SalesOrders 和 SalesPeople。 實體集SalesOrders 擁有SalesOrder和StoreSalesOrder兩個實體類型。
看看上面的模型視圖已經(jīng)更接近應用程序需求了。ADO.NET模型其中SalesPerson的信息已經(jīng)不再分布在不同的數(shù)據(jù)表中了,同時也沒有了主從鍵了。