AdventureWorks 完整模型 (EDM)
許多根據 實體資料模型 (EDM) 的應用程式都需要將結構描述對應到已經使用中的資料庫。對應到現有的資料與完成概念設計之後的儲存模型實作相較之下,是一項更複雜的工作。
隨 SQL Server 提供的 AdventureWorks 資料庫是一個大型、正規化的資料庫,其設計目的是為了示範 SQL Server 的功能。AdventureWorks 資料庫有五個子區段,這些都可以使用概念結構定義語言 (CSDL) 在單一 EntityContainer 中指定。儲存模型是由存放結構定義語言 (SSDL) 中的中繼資料所描述。概念結構描述與儲存結構描述之間的對應是在對應規格語言 (MSL) 中完成。
下列主題中的所有結構描述都是由命令列工具 EdmGen.exe 所產生。所用的單一命令語法包括 /FullGeneration、/Project:AdventureWorks 和 /Provider 參數,以及 AdventureWorks 資料庫的連接字串 (Connection String)。
C:\>%windir%\Microsoft.NET\Framework\v3.5\edmgen.exe /mode:fullgeneration /project:AdventureWorks
/provider:System.Data.SqlClient
/connectionstring:"server=.\sqlExpress;
integrated security=true;database=AdventureWorks" /outssdl:c:\BuildSchemas\AdventureWorks.ssdl /outcsdl:c:\BuildSchemas\AdventureWorks.csdl
/outmsl:c:\BuildSchemas\AdventureWorks.msl
/outViews:c:\BuildSchemas\AdventureWorks.Views.cs
/outObjectLayer:c:\BuildSchemas\AdventureWorks.ObjectLayer.cs
這個非常大型資料庫的結構描述已經由此工具正確產生。CSDL 結構描述是一種規格,可用來為 AdventureWorks 資料庫的所有其他功能建置可程式化的物件。輸出如下所示。
Microsoft (R) EdmGen version 3.5.0.0
Copyright (C) Microsoft Corporation 2007. All rights reserved.
Loading database information...
warning 6002: The table/view 'AdventureWorks.HumanResources.vEmployee' does not
have a primary key defined. The key has been inferred and the definition was cre
ated as a read-only table/view.
warning 6002: The table/view 'AdventureWorks.HumanResources.vEmployeeDepartment'
does not have a primary key defined. The key has been inferred and the definiti
on was created as a read-only table/view.
warning 6002: The table/view 'AdventureWorks.HumanResources.vEmployeeDepartmentH
istory' does not have a primary key defined. The key has been inferred and the d
efinition was created as a read-only table/view.
warning 6002: The table/view 'AdventureWorks.HumanResources.vJobCandidate' does
not have a primary key defined. The key has been inferred and the definition was
created as a read-only table/view.
warning 6002: The table/view 'AdventureWorks.HumanResources.vJobCandidateEducati
on' does not have a primary key defined. The key has been inferred and the defin
ition was created as a read-only table/view.
warning 6002: The table/view 'AdventureWorks.HumanResources.vJobCandidateEmploym
ent' does not have a primary key defined. The key has been inferred and the defi
nition was created as a read-only table/view.
warning 6002: The table/view 'AdventureWorks.Person.vAdditionalContactInfo' does
not have a primary key defined. The key has been inferred and the definition wa
s created as a read-only table/view.
warning 6002: The table/view 'AdventureWorks.Person.vStateProvinceCountryRegion'
does not have a primary key defined. The key has been inferred and the definiti
on was created as a read-only table/view.
warning 6002: The table/view 'AdventureWorks.Production.vProductAndDescription'
does not have a primary key defined. The key has been inferred and the definitio
n was created as a read-only table/view.
warning 6002: The table/view 'AdventureWorks.Production.vProductModelCatalogDesc
ription' does not have a primary key defined. The key has been inferred and the
definition was created as a read-only table/view.
warning 6002: The table/view 'AdventureWorks.Production.vProductModelInstruction
s' does not have a primary key defined. The key has been inferred and the defini
tion was created as a read-only table/view.
warning 6002: The table/view 'AdventureWorks.Purchasing.vVendor' does not have a
primary key defined. The key has been inferred and the definition was created a
s a read-only table/view.
warning 6002: The table/view 'AdventureWorks.Sales.vIndividualCustomer' does not
have a primary key defined. The key has been inferred and the definition was cr
eated as a read-only table/view.
warning 6002: The table/view 'AdventureWorks.Sales.vIndividualDemographics' does
not have a primary key defined. The key has been inferred and the definition wa
s created as a read-only table/view.
warning 6002: The table/view 'AdventureWorks.Sales.vSalesPerson' does not have a
primary key defined. The key has been inferred and the definition was created a
s a read-only table/view.
warning 6002: The table/view 'AdventureWorks.Sales.vSalesPersonSalesByFiscalYear
s' does not have a primary key defined. The key has been inferred and the defini
tion was created as a read-only table/view.
warning 6002: The table/view 'AdventureWorks.Sales.vStoreWithDemographics' does
not have a primary key defined. The key has been inferred and the definition was
created as a read-only table/view.
Writing ssdl file...
Creating conceptual layer from storage layer...
Writing msl file...
Writing csdl file...
Writing object layer file...
Writing views file...
Generation Complete -- 0 errors, 17 warnings
本章節內容
下列主題包含 AdventureWorks 資料的結構描述和對應。
- AdventureWorks 完整概念結構描述 (EDM)
描述用來建置程式設計物件模型的概念結構描述。
- AdventureWorks 完整儲存結構描述 (EDM)
描述用來讓資料可對應至物件模型的儲存中繼資料。
- AdventureWorks 完整對應結構描述 (EDM)
描述概念模型和儲存中繼資料之間的對應。
- 使用 AdventureWorks 物件模型 (EDM)
描述用來存取 AdventureWorks 模型物件中之實體和關聯的程式碼案例。
另請參閱
其他資源
EDM 規格
結構描述和對應規格 (Entity Framework)
結構描述和對應規格 (Entity Framework)