AdventureWorksDW SQL Server 2005 示例

在此,您可以查找到 AdventureWorks 元数据的 Microsoft SQL Server 2005 版本。我们了解到一些用户正在使用 Microsoft SQL Server 2005,因此对于您来说,元数据的 SQL Server 2000 版本几乎是不可用的。现在,我们融入了示例元数据,它与 SQL Server 2005 中包含的 AdventureWorksDW 数据库连接。由于概念和部署步骤都保持不变,因此您可以参阅 AdventureWorks SQL Server 2000 示例以获取详细信息。

Requirements

Microsoft SQL Server 2005 和 AdventureWorksDW 数据库。

示例

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<!-- This metadata defines four entities from the AdventureWorksDW Microsoft SQL Server 2005 sample database. Refer to the AdventureWorks 2000 XML for comments and the Walkthrough for instructions. -->
<LobSystem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://schemas.microsoft.com/office/2006/03/BusinessDataCatalog BDCMetadata.xsd" Type="Database" Version="1.0.0.0" Name="AdventureWorksDW" xmlns="https://schemas.microsoft.com/office/2006/03/BusinessDataCatalog">
  <Properties>
    <Property Name="WildcardCharacter" Type="System.String">%</Property>
  </Properties>
  <LobSystemInstances>
    <LobSystemInstance Name="AdventureWorksDWInstance">
      <Properties>
        <Property Name="AuthenticationMode" Type="Microsoft.Office.Server.ApplicationRegistry.SystemSpecific.Db.DbAuthenticationMode">PassThrough</Property>
        <Property Name="DatabaseAccessProvider" Type="Microsoft.Office.Server.ApplicationRegistry.SystemSpecific.Db.DbAccessProvider">SqlServer</Property>
        <Property Name="RdbConnection Data Source" Type="System.String">EnterYourAdventureWorksDW2005ServerNameHere</Property>
        <Property Name="RdbConnection Initial Catalog" Type="System.String">AdventureWorksDW</Property>
        <Property Name="RdbConnection Integrated Security" Type="System.String">SSPI</Property>
      </Properties>
    </LobSystemInstance>
  </LobSystemInstances>
  <Entities>
    <Entity EstimatedInstanceCount="10000" Name="Product">
      <Properties>
        <Property Name="Title" Type="System.String">EnglishProductName</Property>
        <Property Name="DefaultAction" Type="System.String">View Profile</Property>
      </Properties>
      <Identifiers>
        <Identifier Name="ProductKey" TypeName="System.Int32" />
      </Identifiers>
      <Methods>
        <Method Name="GetProducts">
          <Properties>
            <Property Name="RdbCommandText" Type="System.String">SELECT * FROM DimProduct WHERE (ProductKey &gt;= @MinProductKey) AND (ProductKey &lt;= @MaxProductKey) AND (EnglishProductName LIKE @EnglishProductName) AND (EnglishDescription LIKE @EnglishDescription) AND (Status='Current')</Property>
            <Property Name="RdbCommandType" Type="System.Data.CommandType">Text</Property>
          </Properties>
          <FilterDescriptors>
            <FilterDescriptor Type="Comparison" Name="Key" >
              <Properties>
                <Property Name="Comparator" Type="System.String">Equals</Property>
              </Properties>
            </FilterDescriptor>
            <FilterDescriptor Type="Wildcard" Name="Name">
              <Properties>
                <Property Name="UsedForDisambiguation" Type="System.Boolean">true</Property>
              </Properties>
            </FilterDescriptor>
            <FilterDescriptor Type="Wildcard" Name="Description" />
          </FilterDescriptors>
          <Parameters>
            <Parameter Direction="In" Name="@MinProductKey">
              <TypeDescriptor TypeName="System.Int32" IdentifierName="ProductKey" AssociatedFilter="Key" Name="MinProductKey">
                <DefaultValues>
                  <DefaultValue MethodInstanceName="ProductFinderInstance" Type="System.Int32">0</DefaultValue>
                </DefaultValues>
              </TypeDescriptor>
            </Parameter>
            <Parameter Direction="In" Name="@MaxProductKey">
              <TypeDescriptor TypeName="System.Int32" IdentifierName="ProductKey" AssociatedFilter="Key" Name="MaxProductKey">
                <DefaultValues>
                  <DefaultValue MethodInstanceName="ProductFinderInstance" Type="System.Int32">99999999</DefaultValue>
                </DefaultValues>
              </TypeDescriptor>
            </Parameter>
            <Parameter Direction="In" Name="@EnglishProductName">
              <TypeDescriptor TypeName="System.String" AssociatedFilter="Name" Name="EnglishProductName">
                <DefaultValues>
                  <DefaultValue MethodInstanceName="ProductFinderInstance" Type="System.String">%</DefaultValue>
                  <DefaultValue MethodInstanceName="ProductSpecificFinderInstance" Type="System.String">%</DefaultValue>
                </DefaultValues>
              </TypeDescriptor>
            </Parameter>
            <Parameter Direction="In" Name="@EnglishDescription">
              <TypeDescriptor TypeName="System.String" AssociatedFilter="Description" Name="EnglishDescription">
                <DefaultValues>
                  <DefaultValue MethodInstanceName="ProductFinderInstance" Type="System.String">%</DefaultValue>
                  <DefaultValue MethodInstanceName="ProductSpecificFinderInstance" Type="System.String">%</DefaultValue>
                </DefaultValues>
              </TypeDescriptor>
            </Parameter>
            <Parameter Direction="Return" Name="Products">
              <TypeDescriptor TypeName="System.Data.IDataReader, System.Data, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" IsCollection="true" Name="ProductDataReader">
                <TypeDescriptors>
                  <TypeDescriptor TypeName="System.Data.IDataRecord, System.Data, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="ProductDataRecord">
                    <TypeDescriptors>
                      <TypeDescriptor TypeName="System.Int32" IdentifierName="ProductKey" Name="ProductKey">
                        <LocalizedDisplayNames>
                          <LocalizedDisplayName LCID="1033">Key</LocalizedDisplayName>
                        </LocalizedDisplayNames>
                      </TypeDescriptor>
                      <TypeDescriptor TypeName="System.String" Name="EnglishProductName">
                        <LocalizedDisplayNames>
                          <LocalizedDisplayName LCID="1033">Name</LocalizedDisplayName>
                        </LocalizedDisplayNames>
                        <Properties>
                          <Property Name="DisplayByDefault" Type="System.Boolean">true</Property>
                        </Properties>
                      </TypeDescriptor>
                      <TypeDescriptor TypeName="System.String" Name="EnglishDescription">
                        <LocalizedDisplayNames>
                          <LocalizedDisplayName LCID="1033">Description</LocalizedDisplayName>
                        </LocalizedDisplayNames>
                        <Properties>
                          <Property Name="DisplayByDefault" Type="System.Boolean">true</Property>
                        </Properties>
                      </TypeDescriptor>
                      <TypeDescriptor TypeName="System.Decimal" Name="ListPrice">
                        <LocalizedDisplayNames>
                          <LocalizedDisplayName LCID="1033">List Price</LocalizedDisplayName>
                        </LocalizedDisplayNames>
                      </TypeDescriptor>
                      <TypeDescriptor TypeName="System.Decimal" Name="StandardCost">
                        <LocalizedDisplayNames>
                          <LocalizedDisplayName LCID="1033">Standard Cost</LocalizedDisplayName>
                        </LocalizedDisplayNames>
                      </TypeDescriptor>
                      <TypeDescriptor TypeName="System.String" Name="Color">
                        <LocalizedDisplayNames>
                          <LocalizedDisplayName LCID="1033">Color</LocalizedDisplayName>
                        </LocalizedDisplayNames>
                      </TypeDescriptor>
                      <TypeDescriptor TypeName="System.String" Name="Size">
                        <LocalizedDisplayNames>
                          <LocalizedDisplayName LCID="1033">Size</LocalizedDisplayName>
                        </LocalizedDisplayNames>
                      </TypeDescriptor>
                      <TypeDescriptor TypeName="System.String" Name="Class">
                        <LocalizedDisplayNames>
                          <LocalizedDisplayName LCID="1033">Class</LocalizedDisplayName>
                        </LocalizedDisplayNames>
                      </TypeDescriptor>
                      <TypeDescriptor TypeName="System.Int32" Name="DaysToManufacture">
                        <LocalizedDisplayNames>
                          <LocalizedDisplayName LCID="1033">Days To Manufacture</LocalizedDisplayName>
                        </LocalizedDisplayNames>
                      </TypeDescriptor>
                    </TypeDescriptors>
                  </TypeDescriptor>
                </TypeDescriptors>
              </TypeDescriptor>
            </Parameter>
          </Parameters>
          <MethodInstances>
            <MethodInstance Name="ProductFinderInstance" Type="Finder" ReturnParameterName="Products" />
            <MethodInstance Name="ProductSpecificFinderInstance" Type="SpecificFinder" ReturnParameterName="Products" />
          </MethodInstances>
        </Method>
      </Methods>
    </Entity>
    <Entity EstimatedInstanceCount="1000" Name="Reseller">
      <Properties>
        <Property Name="__BdcTitle" Type="System.String">ResellerName</Property>
        <Property Name="Title" Type="System.String">ResellerName</Property>
        <Property Name="DefaultAction" Type="System.String">View Profile</Property>
      </Properties>
      <Identifiers>
        <Identifier Name="ResellerKey" TypeName="System.Int32" />
      </Identifiers>
      <Methods>
        <Method Name="ResellerIDEnumerator">
          <Properties>
            <Property Name="RdbCommandText" Type="System.String">SELECT ResellerKey FROM DimReseller</Property>
            <Property Name="RdbCommandType" Type="System.Data.CommandType">Text</Property>
          </Properties>
          <Parameters>
            <Parameter Direction="Return" Name="Resellers">
              <TypeDescriptor TypeName="System.Data.IDataReader, System.Data, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" IsCollection="true" Name="ResellerDataReader">
                <TypeDescriptors>
                  <TypeDescriptor TypeName="System.Data.IDataRecord, System.Data, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="ResellerDataRecord">
                    <TypeDescriptors>
                      <TypeDescriptor TypeName="System.Int32" IdentifierName="ResellerKey" Name="ResellerKey" />
                    </TypeDescriptors>
                  </TypeDescriptor>
                </TypeDescriptors>
              </TypeDescriptor>
            </Parameter>
          </Parameters>
          <MethodInstances>
            <MethodInstance Name="ResellerIDEnumeratorInstance" Type="IdEnumerator" ReturnParameterName="Resellers" />
          </MethodInstances>
        </Method>
        <Method Name="ResellerFinder">
          <Properties>
            <Property Name="RdbCommandText" Type="System.String">
              <![CDATA[
              SELECT ResellerKey,DimReseller.GeographyKey,ResellerAlternateKey,Phone,BusinessType,
              ResellerName,NumberEmployees,OrderFrequency,FirstOrderYear,LastOrderYear,ProductLine,
              AddressLine1,AddressLine2,AnnualSales,BankName,MinPaymentAmount,AnnualRevenue,YearOpened,
              City,StateProvinceCode,StateProvinceName,CountryRegionCode,EnglishCountryRegionName,PostalCode
              FROM DimReseller INNER JOIN DimGeography 
              ON DimReseller.GeographyKey = DimGeography.GeographyKey 
              WHERE (ResellerKey >= @MinResellerKey) AND (ResellerKey <= @MaxResellerKey) AND (ResellerName LIKE @ResellerName)
              ]]>
            </Property>
            <Property Name="RdbCommandType" Type="System.Data.CommandType">Text</Property>
          </Properties>
          <FilterDescriptors>
            <FilterDescriptor Type="Wildcard" Name="Name">
              <Properties>
                <Property Name="UsedForDisambiguation" Type="System.Boolean">true</Property>
              </Properties>
            </FilterDescriptor>
            <FilterDescriptor Type="Comparison" Name="Key" >
              <Properties>
                <Property Name="Comparator" Type="System.String">Equals</Property>
              </Properties>
            </FilterDescriptor>
          </FilterDescriptors>
          <Parameters>
            <Parameter Direction="In" Name="@MinResellerKey">
              <TypeDescriptor TypeName="System.Int32" IdentifierName="ResellerKey" AssociatedFilter="Key" Name="MinResellerKey">
                <DefaultValues>
                  <DefaultValue MethodInstanceName="ResellerFinderInstance" Type="System.Int32">0</DefaultValue>
                  <DefaultValue MethodInstanceName="ResellerSpecificFinderInstance" Type="System.Int32">0</DefaultValue>
                </DefaultValues>
              </TypeDescriptor>
            </Parameter>
            <Parameter Direction="In" Name="@MaxResellerKey">
              <TypeDescriptor TypeName="System.Int32" IdentifierName="ResellerKey" AssociatedFilter="Key" Name="MaxResellerKey">
                <DefaultValues>
                  <DefaultValue MethodInstanceName="ResellerFinderInstance" Type="System.Int32">9999999</DefaultValue>
                  <DefaultValue MethodInstanceName="ResellerSpecificFinderInstance" Type="System.Int32">9999999</DefaultValue>
                </DefaultValues>
              </TypeDescriptor>
            </Parameter>
            <Parameter Direction="In" Name="@ResellerName">
              <TypeDescriptor TypeName="System.String" AssociatedFilter="Name" Name="ResellerName">
                <DefaultValues>
                  <DefaultValue MethodInstanceName="ResellerFinderInstance" Type="System.String">%</DefaultValue>
                  <DefaultValue MethodInstanceName="ResellerSpecificFinderInstance" Type="System.String">%</DefaultValue>
                </DefaultValues>
              </TypeDescriptor>
            </Parameter>
            <Parameter Direction="Return" Name="Resellers">
              <TypeDescriptor TypeName="System.Data.IDataReader, System.Data, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" IsCollection="true" Name="Resellers">
                <TypeDescriptors>
                  <TypeDescriptor TypeName="System.Data.IDataRecord, System.Data, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="Reseller">
                    <TypeDescriptors>
                      <TypeDescriptor TypeName="System.Int32" IdentifierName="ResellerKey" Name="ResellerKey">
                        <LocalizedDisplayNames>
                          <LocalizedDisplayName LCID="1033">Number</LocalizedDisplayName>
                        </LocalizedDisplayNames>
                        <Properties>
                          <Property Name="DisplayByDefault" Type="System.Boolean">true</Property>
                        </Properties>
                      </TypeDescriptor>
                      <TypeDescriptor TypeName="System.String" Name="Phone">
                        <LocalizedDisplayNames>
                          <LocalizedDisplayName LCID="1033">Phone</LocalizedDisplayName>
                        </LocalizedDisplayNames>
                      </TypeDescriptor>
                      <TypeDescriptor TypeName="System.String" Name="BusinessType">
                        <LocalizedDisplayNames>
                          <LocalizedDisplayName LCID="1033">Business Type</LocalizedDisplayName>
                        </LocalizedDisplayNames>
                        <Properties>
                          <Property Name="DisplayByDefault" Type="System.Boolean">true</Property>
                        </Properties>
                      </TypeDescriptor>
                      <TypeDescriptor TypeName="System.String" Name="ResellerName">
                        <LocalizedDisplayNames>
                          <LocalizedDisplayName LCID="1033">Name</LocalizedDisplayName>
                        </LocalizedDisplayNames>
                        <Properties>
                          <Property Name="DisplayByDefault" Type="System.Boolean">true</Property>
                        </Properties>
                      </TypeDescriptor>
                      <TypeDescriptor TypeName="System.Int32" Name="NumberEmployees">
                        <LocalizedDisplayNames>
                          <LocalizedDisplayName LCID="1033">Employees</LocalizedDisplayName>
                        </LocalizedDisplayNames>
                      </TypeDescriptor>
                      <TypeDescriptor TypeName="System.String" Name="OrderFrequency">
                        <LocalizedDisplayNames>
                          <LocalizedDisplayName LCID="1033">Order Frequency</LocalizedDisplayName>
                        </LocalizedDisplayNames>
                      </TypeDescriptor>
                      <TypeDescriptor TypeName="System.Int32" Name="FirstOrderYear">
                        <LocalizedDisplayNames>
                          <LocalizedDisplayName LCID="1033">First Order Year</LocalizedDisplayName>
                        </LocalizedDisplayNames>
                      </TypeDescriptor>
                      <TypeDescriptor TypeName="System.Int32" Name="LastOrderYear">
                        <LocalizedDisplayNames>
                          <LocalizedDisplayName LCID="1033">Last Order Year</LocalizedDisplayName>
                        </LocalizedDisplayNames>
                      </TypeDescriptor>
                      <TypeDescriptor TypeName="System.String" Name="ProductLine">
                        <LocalizedDisplayNames>
                          <LocalizedDisplayName LCID="1033">Product Line</LocalizedDisplayName>
                        </LocalizedDisplayNames>
                      </TypeDescriptor>
                      <TypeDescriptor TypeName="System.String" Name="AddressLine1">
                        <LocalizedDisplayNames>
                          <LocalizedDisplayName LCID="1033">Address Line 1</LocalizedDisplayName>
                        </LocalizedDisplayNames>
                      </TypeDescriptor>
                      <TypeDescriptor TypeName="System.String" Name="AddressLine2">
                        <LocalizedDisplayNames>
                          <LocalizedDisplayName LCID="1033">Address Line 2</LocalizedDisplayName>
                        </LocalizedDisplayNames>
                      </TypeDescriptor>
                      <TypeDescriptor TypeName="System.Decimal" Name="AnnualSales">
                        <LocalizedDisplayNames>
                          <LocalizedDisplayName LCID="1033">Annual Sales</LocalizedDisplayName>
                        </LocalizedDisplayNames>
                      </TypeDescriptor>
                      <TypeDescriptor TypeName="System.String" Name="BankName">
                        <LocalizedDisplayNames>
                          <LocalizedDisplayName LCID="1033">Bank Name</LocalizedDisplayName>
                        </LocalizedDisplayNames>
                      </TypeDescriptor>
                      <TypeDescriptor TypeName="System.Decimal" Name="MinPaymentAmount">
                        <LocalizedDisplayNames>
                          <LocalizedDisplayName LCID="1033">Minimum Payment Amount</LocalizedDisplayName>
                        </LocalizedDisplayNames>
                      </TypeDescriptor>
                      <TypeDescriptor TypeName="System.Decimal" Name="AnnualRevenue">
                        <LocalizedDisplayNames>
                          <LocalizedDisplayName LCID="1033">Annual Revenue</LocalizedDisplayName>
                        </LocalizedDisplayNames>
                      </TypeDescriptor>
                      <TypeDescriptor TypeName="System.Int32" Name="YearOpened">
                        <LocalizedDisplayNames>
                          <LocalizedDisplayName LCID="1033">Year Opened</LocalizedDisplayName>
                        </LocalizedDisplayNames>
                      </TypeDescriptor>
                      <TypeDescriptor TypeName="System.String" Name="City">
                        <LocalizedDisplayNames>
                          <LocalizedDisplayName LCID="1033">City</LocalizedDisplayName>
                        </LocalizedDisplayNames>
                      </TypeDescriptor>
                      <TypeDescriptor TypeName="System.String" Name="StateProvinceCode">
                        <LocalizedDisplayNames>
                          <LocalizedDisplayName LCID="1033">State/Province Code</LocalizedDisplayName>
                        </LocalizedDisplayNames>
                      </TypeDescriptor>
                      <TypeDescriptor TypeName="System.String" Name="StateProvinceName">
                        <LocalizedDisplayNames>
                          <LocalizedDisplayName LCID="1033">State/Province</LocalizedDisplayName>
                        </LocalizedDisplayNames>
                        <Properties>
                          <Property Name="DisplayByDefault" Type="System.Boolean">true</Property>
                        </Properties>
                      </TypeDescriptor>
                      <TypeDescriptor TypeName="System.String" Name="CountryRegionCode">
                        <LocalizedDisplayNames>
                          <LocalizedDisplayName LCID="1033">Country/Region Code</LocalizedDisplayName>
                        </LocalizedDisplayNames>
                      </TypeDescriptor>
                      <TypeDescriptor TypeName="System.String" Name="EnglishCountryRegionName">
                        <LocalizedDisplayNames>
                          <LocalizedDisplayName LCID="1033">Country/Region</LocalizedDisplayName>
                        </LocalizedDisplayNames>
                        <Properties>
                          <Property Name="DisplayByDefault" Type="System.Boolean">true</Property>
                        </Properties>
                      </TypeDescriptor>
                      <TypeDescriptor TypeName="System.String" Name="PostalCode">
                        <LocalizedDisplayNames>
                          <LocalizedDisplayName LCID="1033">Postal Code</LocalizedDisplayName>
                        </LocalizedDisplayNames>
                      </TypeDescriptor>
                    </TypeDescriptors>
                  </TypeDescriptor>
                </TypeDescriptors>
              </TypeDescriptor>
            </Parameter>
          </Parameters>
          <MethodInstances>
            <MethodInstance Name="ResellerFinderInstance" Type="Finder" ReturnParameterName="Resellers" />
            <MethodInstance Name="ResellerSpecificFinderInstance" Type="SpecificFinder" ReturnParameterName="Resellers" />
          </MethodInstances>
        </Method>
      </Methods>
    </Entity>
    <Entity EstimatedInstanceCount="10000" Name="ProductSubcategory">
      <LocalizedDisplayNames>
        <LocalizedDisplayName LCID="1033">Product Subcategory</LocalizedDisplayName>
      </LocalizedDisplayNames>
      <Properties>
        <Property Name="Title" Type="System.String">EnglishProductSubcategoryName</Property>
        <Property Name="DefaultAction" Type="System.String">View Profile</Property>
      </Properties>
      <Identifiers>
        <Identifier Name="ProductSubcategoryKey" TypeName="System.Int32" />
      </Identifiers>
      <Methods>
        <Method Name="GetProductSubcategories">
          <Properties>
            <Property Name="RdbCommandText" Type="System.String">SELECT * FROM DimProductSubcategory WHERE (ProductSubcategoryKey &gt;= @MinProductSubcategoryKey) AND (ProductSubcategoryKey &lt;= @MaxProductSubcategoryKey) AND (EnglishProductSubcategoryName LIKE @EnglishProductSubcategoryName)</Property>
            <Property Name="RdbCommandType" Type="System.Data.CommandType">Text</Property>
          </Properties>
          <FilterDescriptors>
            <FilterDescriptor Type="Comparison" Name="Key" >
              <Properties>
                <Property Name="Comparator" Type="System.String">Equals</Property>
              </Properties>
            </FilterDescriptor>
            <FilterDescriptor Type="Wildcard" Name="Name">
              <Properties>
                <Property Name="UsedForDisambiguation" Type="System.Boolean">true</Property>
              </Properties>
            </FilterDescriptor>
          </FilterDescriptors>
          <Parameters>
            <Parameter Direction="In" Name="@MinProductSubcategoryKey">
              <TypeDescriptor TypeName="System.Int32" IdentifierName="ProductSubcategoryKey" AssociatedFilter="Key" Name="MinProductSubcategoryKey">
                <DefaultValues>
                  <DefaultValue MethodInstanceName="ProductSubcategoryFinderInstance" Type="System.Int32">0</DefaultValue>
                </DefaultValues>
              </TypeDescriptor>
            </Parameter>
            <Parameter Direction="In" Name="@MaxProductSubcategoryKey">
              <TypeDescriptor TypeName="System.Int32" IdentifierName="ProductSubcategoryKey" AssociatedFilter="Key" Name="MaxProductSubcategoryKey">
                <DefaultValues>
                  <DefaultValue MethodInstanceName="ProductSubcategoryFinderInstance" Type="System.Int32">99999999</DefaultValue>
                </DefaultValues>
              </TypeDescriptor>
            </Parameter>
            <Parameter Direction="In" Name="@EnglishProductSubcategoryName">
              <TypeDescriptor TypeName="System.String" AssociatedFilter="Name" Name="EnglishProductSubcategoryName">
                <DefaultValues>
                  <DefaultValue MethodInstanceName="ProductSubcategoryFinderInstance" Type="System.String">%</DefaultValue>
                  <DefaultValue MethodInstanceName="ProductSubcategorySpecificFinderInstance" Type="System.String">%</DefaultValue>
                </DefaultValues>
              </TypeDescriptor>
            </Parameter>
            <Parameter Direction="Return" Name="ProductSubcategories">
              <TypeDescriptor TypeName="System.Data.IDataReader, System.Data, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" IsCollection="true" Name="ProductSubcategoryDataReader">
                <TypeDescriptors>
                  <TypeDescriptor TypeName="System.Data.IDataRecord, System.Data, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="ProductSubcategoryDataRecord">
                    <TypeDescriptors>
                      <TypeDescriptor TypeName="System.Int32" IdentifierName="ProductSubcategoryKey" Name="ProductSubcategoryKey">
                        <LocalizedDisplayNames>
                          <LocalizedDisplayName LCID="1033">Key</LocalizedDisplayName>
                        </LocalizedDisplayNames>
                      </TypeDescriptor>
                      <TypeDescriptor TypeName="System.String" Name="EnglishProductSubcategoryName">
                        <LocalizedDisplayNames>
                          <LocalizedDisplayName LCID="1033">Name</LocalizedDisplayName>
                        </LocalizedDisplayNames>
                        <Properties>
                          <Property Name="DisplayByDefault" Type="System.Boolean">true</Property>
                        </Properties>
                      </TypeDescriptor>
                    </TypeDescriptors>
                  </TypeDescriptor>
                </TypeDescriptors>
              </TypeDescriptor>
            </Parameter>
          </Parameters>
          <MethodInstances>
            <MethodInstance Name="ProductSubcategoryFinderInstance" Type="Finder" ReturnParameterName="ProductSubcategories" />
            <MethodInstance Name="ProductSubcategorySpecificFinderInstance" Type="SpecificFinder" ReturnParameterName="ProductSubcategories" />
          </MethodInstances>
        </Method>
        <Method Name="GetProducts">
          <Properties>
            <Property Name="RdbCommandText" Type="System.String">SELECT * FROM DimProduct WHERE ProductSubcategoryKey = @ProductSubcategoryKey AND Status = 'Current'</Property>
            <Property Name="RdbCommandType" Type="System.Data.CommandType">Text</Property>
          </Properties>
          <Parameters>
            <Parameter Direction="In" Name="@ProductSubcategoryKey">
              <TypeDescriptor TypeName="System.Int32" IdentifierName="ProductSubcategoryKey" Name="ProductSubcategoryKey" />
            </Parameter>
            <Parameter Direction="Return" Name="Products">
              <TypeDescriptor TypeName="System.Data.IDataReader, System.Data, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" IsCollection="true" Name="ProductDataReader">
                <TypeDescriptors>
                  <TypeDescriptor TypeName="System.Data.IDataRecord, System.Data, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="ProductDataRecord">
                    <TypeDescriptors>
                      <TypeDescriptor TypeName="System.Int32" IdentifierEntityName="Product" IdentifierName="ProductKey" Name="ProductKey">
                        <LocalizedDisplayNames>
                          <LocalizedDisplayName LCID="1033">Key</LocalizedDisplayName>
                        </LocalizedDisplayNames>
                      </TypeDescriptor>
                      <TypeDescriptor TypeName="System.String" Name="EnglishProductName">
                        <LocalizedDisplayNames>
                          <LocalizedDisplayName LCID="1033">Name</LocalizedDisplayName>
                        </LocalizedDisplayNames>
                        <Properties>
                          <Property Name="DisplayByDefault" Type="System.Boolean">true</Property>
                        </Properties>
                      </TypeDescriptor>
                      <TypeDescriptor TypeName="System.String" Name="EnglishDescription">
                        <LocalizedDisplayNames>
                          <LocalizedDisplayName LCID="1033">Description</LocalizedDisplayName>
                        </LocalizedDisplayNames>
                        <Properties>
                          <Property Name="DisplayByDefault" Type="System.Boolean">true</Property>
                        </Properties>
                      </TypeDescriptor>
                    </TypeDescriptors>
                  </TypeDescriptor>
                </TypeDescriptors>
              </TypeDescriptor>
            </Parameter>
          </Parameters>
        </Method>
      </Methods>
    </Entity>
    <Entity EstimatedInstanceCount="10000" Name="ProductCategory">
      <LocalizedDisplayNames>
        <LocalizedDisplayName LCID="1033">Product Category</LocalizedDisplayName>
      </LocalizedDisplayNames>
      <Properties>
        <Property Name="Title" Type="System.String">EnglishProductCategoryName</Property>
        <Property Name="DefaultAction" Type="System.String">View Profile</Property>
      </Properties>
      <Identifiers>
        <Identifier Name="ProductCategoryKey" TypeName="System.Int32" />
      </Identifiers>
      <Methods>
        <Method Name="GetProductCategories">
          <Properties>
            <Property Name="RdbCommandText" Type="System.String">SELECT * FROM DimProductCategory WHERE (ProductCategoryKey &gt;= @MinProductCategoryKey) AND (ProductCategoryKey &lt;= @MaxProductCategoryKey) AND (EnglishProductCategoryName LIKE @EnglishProductCategoryName)</Property>
            <Property Name="RdbCommandType" Type="System.Data.CommandType">Text</Property>
          </Properties>
          <FilterDescriptors>
            <FilterDescriptor Type="Comparison" Name="Key" >
              <Properties>
                <Property Name="Comparator" Type="System.String">Equals</Property>
              </Properties>
            </FilterDescriptor>
            <FilterDescriptor Type="Wildcard" Name="Name">
              <Properties>
                <Property Name="UsedForDisambiguation" Type="System.Boolean">true</Property>
              </Properties>
            </FilterDescriptor>
          </FilterDescriptors>
          <Parameters>
            <Parameter Direction="In" Name="@MinProductCategoryKey">
              <TypeDescriptor TypeName="System.Int32" IdentifierName="ProductCategoryKey" AssociatedFilter="Key" Name="MinProductCategoryKey">
                <DefaultValues>
                  <DefaultValue MethodInstanceName="ProductCategoryFinderInstance" Type="System.Int32">0</DefaultValue>
                </DefaultValues>
              </TypeDescriptor>
            </Parameter>
            <Parameter Direction="In" Name="@MaxProductCategoryKey">
              <TypeDescriptor TypeName="System.Int32" IdentifierName="ProductCategoryKey" AssociatedFilter="Key" Name="MaxProductCategoryKey">
                <DefaultValues>
                  <DefaultValue MethodInstanceName="ProductCategoryFinderInstance" Type="System.Int32">99999999</DefaultValue>
                </DefaultValues>
              </TypeDescriptor>
            </Parameter>
            <Parameter Direction="In" Name="@EnglishProductCategoryName">
              <TypeDescriptor TypeName="System.String" AssociatedFilter="Name" Name="EnglishProductCategoryName">
                <DefaultValues>
                  <DefaultValue MethodInstanceName="ProductCategoryFinderInstance" Type="System.String">%</DefaultValue>
                  <DefaultValue MethodInstanceName="ProductCategorySpecificFinderInstance" Type="System.String">%</DefaultValue>
                </DefaultValues>
              </TypeDescriptor>
            </Parameter>
            <Parameter Direction="Return" Name="ProductCategories">
              <TypeDescriptor TypeName="System.Data.IDataReader, System.Data, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" IsCollection="true" Name="ProductCategoryDataReader">
                <TypeDescriptors>
                  <TypeDescriptor TypeName="System.Data.IDataRecord, System.Data, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="ProductCategoryDataRecord">
                    <TypeDescriptors>
                      <TypeDescriptor TypeName="System.Int32" IdentifierName="ProductCategoryKey" Name="ProductCategoryKey">
                        <LocalizedDisplayNames>
                          <LocalizedDisplayName LCID="1033">Key</LocalizedDisplayName>
                        </LocalizedDisplayNames>
                      </TypeDescriptor>
                      <TypeDescriptor TypeName="System.String" Name="EnglishProductCategoryName">
                        <LocalizedDisplayNames>
                          <LocalizedDisplayName LCID="1033">Name</LocalizedDisplayName>
                        </LocalizedDisplayNames>
                        <Properties>
                          <Property Name="DisplayByDefault" Type="System.Boolean">true</Property>
                        </Properties>
                      </TypeDescriptor>
                    </TypeDescriptors>
                  </TypeDescriptor>
                </TypeDescriptors>
              </TypeDescriptor>
            </Parameter>
          </Parameters>
          <MethodInstances>
            <MethodInstance Name="ProductCategoryFinderInstance" Type="Finder" ReturnParameterName="ProductCategories" />
            <MethodInstance Name="ProductCategorySpecificFinderInstance" Type="SpecificFinder" ReturnParameterName="ProductCategories" />
          </MethodInstances>
        </Method>
        <Method Name="GetProductSubcategories">
          <Properties>
            <Property Name="RdbCommandText" Type="System.String">SELECT * FROM DimProductSubcategory WHERE ProductCategoryKey = @ProductCategoryKey</Property>
            <Property Name="RdbCommandType" Type="System.Data.CommandType">Text</Property>
          </Properties>
          <Parameters>
            <Parameter Direction="In" Name="@ProductCategoryKey">
              <TypeDescriptor TypeName="System.Int32" IdentifierName="ProductCategoryKey" Name="ProductCategoryKey" />
            </Parameter>
            <Parameter Direction="Return" Name="ProductSubcategories">
              <TypeDescriptor TypeName="System.Data.IDataReader, System.Data, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" IsCollection="true" Name="ProductSubcategoryDataReader">
                <TypeDescriptors>
                  <TypeDescriptor TypeName="System.Data.IDataRecord, System.Data, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="ProductSubcategoryDataRecord">
                    <TypeDescriptors>
                      <TypeDescriptor TypeName="System.Int32" IdentifierEntityName="ProductSubcategory" IdentifierName="ProductSubcategoryKey" Name="ProductSubcategoryKey">
                        <LocalizedDisplayNames>
                          <LocalizedDisplayName LCID="1033">Key</LocalizedDisplayName>
                        </LocalizedDisplayNames>
                      </TypeDescriptor>
                      <TypeDescriptor TypeName="System.String" Name="EnglishProductSubcategoryName">
                        <LocalizedDisplayNames>
                          <LocalizedDisplayName LCID="1033">Name</LocalizedDisplayName>
                        </LocalizedDisplayNames>
                        <Properties>
                          <Property Name="DisplayByDefault" Type="System.Boolean">true</Property>
                        </Properties>
                      </TypeDescriptor>
                    </TypeDescriptors>
                  </TypeDescriptor>
                </TypeDescriptors>
              </TypeDescriptor>
            </Parameter>
          </Parameters>
        </Method>
      </Methods>
    </Entity>
  </Entities>
  <Associations>
    <Association AssociationMethodEntityName="ProductSubcategory" AssociationMethodName="GetProducts" AssociationMethodReturnParameterName="Products" Name="ProductSubcategoryToProduct" IsCached="true">
      <SourceEntity Name="ProductSubcategory" />
      <DestinationEntity Name="Product" />
    </Association>
    <Association AssociationMethodEntityName="ProductCategory" AssociationMethodName="GetProductSubcategories" AssociationMethodReturnParameterName="ProductSubcategories" Name="ProductCategoryToProductSubcategory" IsCached="true">
      <SourceEntity Name="ProductCategory" />
      <DestinationEntity Name="ProductSubcategory" />
    </Association>
  </Associations>
</LobSystem>

See Also

任务

AdventureWorks SQL Server 2000 示例

如何:初步使用运行时对象模型

如何:管理对象模型使用入门

概念

业务数据目录:元数据模型

业务数据目录:体系结构

常见问题解答:业务数据目录

业务数据目录:术语表