Cómo: Definir manualmente los archivos de asignación y modelo (Entity Framework)

En este tema se muestra cómo crear manualmente los archivos del modelo y de asignación de Modelo AdventureWorks Sales. Si genera manualmente los archivos de modelo y asignación, aún tendrá que configurar el proyecto de Visual Studio para que utilice Entity Framework . Para obtener más información, vea Cómo configurar manualmente un proyecto de Entity Framework.

Bb399785.note(es-es,VS.100).gifNota:
Si usa el Asistente para Entity Data Model en un proyecto de Visual Studio, el asistente genera automáticamente un archivo .edmx y configura el proyecto para que use Entity Framework .Para obtener más información, vea Cómo usar el Asistente para Entity Data Model (Entity Framework).

Para crear el archivo del lenguaje de definición de esquemas de almacenamiento (SSDL)

  • Agregue un archivo denominado AdventureWorks.ssdl al directorio del proyecto y péguelo en el contenido siguiente:

    <Schema Namespace="AdventureWorksModel.Store" Alias="Self" Provider="System.Data.SqlClient" ProviderManifestToken="2008" xmlns:store="https://schemas.microsoft.com/ado/2007/12/edm/EntityStoreSchemaGenerator" xmlns="https://schemas.microsoft.com/ado/2009/02/edm/ssdl">
      <EntityContainer Name="AdventureWorksModelStoreContainer">
        <EntitySet Name="Address" EntityType="AdventureWorksModel.Store.Address" store:Type="Tables" Schema="Person" />
        <EntitySet Name="Contact" EntityType="AdventureWorksModel.Store.Contact" store:Type="Tables" Schema="Person" />
        <EntitySet Name="Product" EntityType="AdventureWorksModel.Store.Product" store:Type="Tables" Schema="Production" />
        <EntitySet Name="SalesOrderDetail" EntityType="AdventureWorksModel.Store.SalesOrderDetail" store:Type="Tables" Schema="Sales" />
        <EntitySet Name="SalesOrderHeader" EntityType="AdventureWorksModel.Store.SalesOrderHeader" store:Type="Tables" Schema="Sales" />
        <AssociationSet Name="FK_SalesOrderDetail_SalesOrderHeader_SalesOrderID" Association="AdventureWorksModel.Store.FK_SalesOrderDetail_SalesOrderHeader_SalesOrderID">
          <End Role="SalesOrderHeader" EntitySet="SalesOrderHeader" />
          <End Role="SalesOrderDetail" EntitySet="SalesOrderDetail" />
        </AssociationSet>
        <AssociationSet Name="FK_SalesOrderHeader_Address_BillToAddressID" Association="AdventureWorksModel.Store.FK_SalesOrderHeader_Address_BillToAddressID">
          <End Role="Address" EntitySet="Address" />
          <End Role="SalesOrderHeader" EntitySet="SalesOrderHeader" />
        </AssociationSet>
        <AssociationSet Name="FK_SalesOrderHeader_Address_ShipToAddressID" Association="AdventureWorksModel.Store.FK_SalesOrderHeader_Address_ShipToAddressID">
          <End Role="Address" EntitySet="Address" />
          <End Role="SalesOrderHeader" EntitySet="SalesOrderHeader" />
        </AssociationSet>
        <AssociationSet Name="FK_SalesOrderHeader_Contact_ContactID" Association="AdventureWorksModel.Store.FK_SalesOrderHeader_Contact_ContactID">
          <End Role="Contact" EntitySet="Contact" />
          <End Role="SalesOrderHeader" EntitySet="SalesOrderHeader" />
        </AssociationSet>
      </EntityContainer>
      <EntityType Name="Address">
        <Key>
          <PropertyRef Name="AddressID" />
        </Key>
        <Property Name="AddressID" Type="int" Nullable="false" StoreGeneratedPattern="Identity" />
        <Property Name="AddressLine1" Type="nvarchar" Nullable="false" MaxLength="60" />
        <Property Name="AddressLine2" Type="nvarchar" MaxLength="60" />
        <Property Name="City" Type="nvarchar" Nullable="false" MaxLength="30" />
        <Property Name="StateProvinceID" Type="int" Nullable="false" />
        <Property Name="PostalCode" Type="nvarchar" Nullable="false" MaxLength="15" />
        <Property Name="rowguid" Type="uniqueidentifier" Nullable="false" />
        <Property Name="ModifiedDate" Type="datetime" Nullable="false" />
      </EntityType>
      <EntityType Name="Contact">
        <Key>
          <PropertyRef Name="ContactID" />
        </Key>
        <Property Name="ContactID" Type="int" Nullable="false" StoreGeneratedPattern="Identity" />
        <Property Name="NameStyle" Type="bit" Nullable="false" />
        <Property Name="Title" Type="nvarchar" MaxLength="8" />
        <Property Name="FirstName" Type="nvarchar" Nullable="false" MaxLength="50" />
        <Property Name="MiddleName" Type="nvarchar" MaxLength="50" />
        <Property Name="LastName" Type="nvarchar" Nullable="false" MaxLength="50" />
        <Property Name="Suffix" Type="nvarchar" MaxLength="10" />
        <Property Name="EmailAddress" Type="nvarchar" MaxLength="50" />
        <Property Name="EmailPromotion" Type="int" Nullable="false" />
        <Property Name="Phone" Type="nvarchar" MaxLength="25" />
        <Property Name="PasswordHash" Type="varchar" Nullable="false" MaxLength="128" />
        <Property Name="PasswordSalt" Type="varchar" Nullable="false" MaxLength="10" />
        <Property Name="AdditionalContactInfo" Type="xml" />
        <Property Name="rowguid" Type="uniqueidentifier" Nullable="false" />
        <Property Name="ModifiedDate" Type="datetime" Nullable="false" />
      </EntityType>
      <EntityType Name="Product">
        <Key>
          <PropertyRef Name="ProductID" />
        </Key>
        <Property Name="ProductID" Type="int" Nullable="false" StoreGeneratedPattern="Identity" />
        <Property Name="Name" Type="nvarchar" Nullable="false" MaxLength="50" />
        <Property Name="ProductNumber" Type="nvarchar" Nullable="false" MaxLength="25" />
        <Property Name="MakeFlag" Type="bit" Nullable="false" />
        <Property Name="FinishedGoodsFlag" Type="bit" Nullable="false" />
        <Property Name="Color" Type="nvarchar" MaxLength="15" />
        <Property Name="SafetyStockLevel" Type="smallint" Nullable="false" />
        <Property Name="ReorderPoint" Type="smallint" Nullable="false" />
        <Property Name="StandardCost" Type="money" Nullable="false" />
        <Property Name="ListPrice" Type="money" Nullable="false" />
        <Property Name="Size" Type="nvarchar" MaxLength="5" />
        <Property Name="SizeUnitMeasureCode" Type="nchar" MaxLength="3" />
        <Property Name="WeightUnitMeasureCode" Type="nchar" MaxLength="3" />
        <Property Name="Weight" Type="decimal" Precision="8" Scale="2" />
        <Property Name="DaysToManufacture" Type="int" Nullable="false" />
        <Property Name="ProductLine" Type="nchar" MaxLength="2" />
        <Property Name="Class" Type="nchar" MaxLength="2" />
        <Property Name="Style" Type="nchar" MaxLength="2" />
        <Property Name="ProductSubcategoryID" Type="int" />
        <Property Name="ProductModelID" Type="int" />
        <Property Name="SellStartDate" Type="datetime" Nullable="false" />
        <Property Name="SellEndDate" Type="datetime" />
        <Property Name="DiscontinuedDate" Type="datetime" />
        <Property Name="rowguid" Type="uniqueidentifier" Nullable="false" />
        <Property Name="ModifiedDate" Type="datetime" Nullable="false" />
      </EntityType>
      <EntityType Name="SalesOrderDetail">
        <Key>
          <PropertyRef Name="SalesOrderID" />
          <PropertyRef Name="SalesOrderDetailID" />
        </Key>
        <Property Name="SalesOrderID" Type="int" Nullable="false" />
        <Property Name="SalesOrderDetailID" Type="int" Nullable="false" StoreGeneratedPattern="Identity" />
        <Property Name="CarrierTrackingNumber" Type="nvarchar" MaxLength="25" />
        <Property Name="OrderQty" Type="smallint" Nullable="false" />
        <Property Name="ProductID" Type="int" Nullable="false" />
        <Property Name="SpecialOfferID" Type="int" Nullable="false" />
        <Property Name="UnitPrice" Type="money" Nullable="false" />
        <Property Name="UnitPriceDiscount" Type="money" Nullable="false" />
        <Property Name="LineTotal" Type="numeric" Nullable="false" Precision="38" Scale="6" StoreGeneratedPattern="Computed" />
        <Property Name="rowguid" Type="uniqueidentifier" Nullable="false" />
        <Property Name="ModifiedDate" Type="datetime" Nullable="false" />
      </EntityType>
      <EntityType Name="SalesOrderHeader">
        <Key>
          <PropertyRef Name="SalesOrderID" />
        </Key>
        <Property Name="SalesOrderID" Type="int" Nullable="false" StoreGeneratedPattern="Identity" />
        <Property Name="RevisionNumber" Type="tinyint" Nullable="false" />
        <Property Name="OrderDate" Type="datetime" Nullable="false" />
        <Property Name="DueDate" Type="datetime" Nullable="false" />
        <Property Name="ShipDate" Type="datetime" />
        <Property Name="Status" Type="tinyint" Nullable="false" />
        <Property Name="OnlineOrderFlag" Type="bit" Nullable="false" />
        <Property Name="SalesOrderNumber" Type="nvarchar" Nullable="false" MaxLength="25" StoreGeneratedPattern="Computed" />
        <Property Name="PurchaseOrderNumber" Type="nvarchar" MaxLength="25" />
        <Property Name="AccountNumber" Type="nvarchar" MaxLength="15" />
        <Property Name="CustomerID" Type="int" Nullable="false" />
        <Property Name="ContactID" Type="int" Nullable="false" />
        <Property Name="SalesPersonID" Type="int" />
        <Property Name="TerritoryID" Type="int" />
        <Property Name="BillToAddressID" Type="int" Nullable="false" />
        <Property Name="ShipToAddressID" Type="int" Nullable="false" />
        <Property Name="ShipMethodID" Type="int" Nullable="false" />
        <Property Name="CreditCardID" Type="int" />
        <Property Name="CreditCardApprovalCode" Type="varchar" MaxLength="15" />
        <Property Name="CurrencyRateID" Type="int" />
        <Property Name="SubTotal" Type="money" Nullable="false" />
        <Property Name="TaxAmt" Type="money" Nullable="false" />
        <Property Name="Freight" Type="money" Nullable="false" />
        <Property Name="TotalDue" Type="money" Nullable="false" StoreGeneratedPattern="Computed" />
        <Property Name="Comment" Type="nvarchar" MaxLength="128" />
        <Property Name="rowguid" Type="uniqueidentifier" Nullable="false" />
        <Property Name="ModifiedDate" Type="datetime" Nullable="false" />
      </EntityType>
      <Association Name="FK_SalesOrderDetail_SalesOrderHeader_SalesOrderID">
        <End Role="SalesOrderHeader" Type="AdventureWorksModel.Store.SalesOrderHeader" Multiplicity="1">
          <OnDelete Action="Cascade" />
        </End>
        <End Role="SalesOrderDetail" Type="AdventureWorksModel.Store.SalesOrderDetail" Multiplicity="*" />
        <ReferentialConstraint>
          <Principal Role="SalesOrderHeader">
            <PropertyRef Name="SalesOrderID" />
          </Principal>
          <Dependent Role="SalesOrderDetail">
            <PropertyRef Name="SalesOrderID" />
          </Dependent>
        </ReferentialConstraint>
      </Association>
      <Association Name="FK_SalesOrderHeader_Address_BillToAddressID">
        <End Role="Address" Type="AdventureWorksModel.Store.Address" Multiplicity="1" />
        <End Role="SalesOrderHeader" Type="AdventureWorksModel.Store.SalesOrderHeader" Multiplicity="*" />
        <ReferentialConstraint>
          <Principal Role="Address">
            <PropertyRef Name="AddressID" />
          </Principal>
          <Dependent Role="SalesOrderHeader">
            <PropertyRef Name="BillToAddressID" />
          </Dependent>
        </ReferentialConstraint>
      </Association>
      <Association Name="FK_SalesOrderHeader_Address_ShipToAddressID">
        <End Role="Address" Type="AdventureWorksModel.Store.Address" Multiplicity="1" />
        <End Role="SalesOrderHeader" Type="AdventureWorksModel.Store.SalesOrderHeader" Multiplicity="*" />
        <ReferentialConstraint>
          <Principal Role="Address">
            <PropertyRef Name="AddressID" />
          </Principal>
          <Dependent Role="SalesOrderHeader">
            <PropertyRef Name="ShipToAddressID" />
          </Dependent>
        </ReferentialConstraint>
      </Association>
      <Association Name="FK_SalesOrderHeader_Contact_ContactID">
        <End Role="Contact" Type="AdventureWorksModel.Store.Contact" Multiplicity="1" />
        <End Role="SalesOrderHeader" Type="AdventureWorksModel.Store.SalesOrderHeader" Multiplicity="*" />
        <ReferentialConstraint>
          <Principal Role="Contact">
            <PropertyRef Name="ContactID" />
          </Principal>
          <Dependent Role="SalesOrderHeader">
            <PropertyRef Name="ContactID" />
          </Dependent>
        </ReferentialConstraint>
      </Association>
    </Schema>
    

Para crear el archivo del lenguaje de definición de esquemas de conceptuales (CSDL)

  • Agregue un archivo denominado AdventureWorks.csdl al directorio del proyecto y péguelo en el contenido siguiente:

    <Schema Namespace="AdventureWorksModel" Alias="Self" xmlns:annotation="https://schemas.microsoft.com/ado/2009/02/edm/annotation" xmlns="https://schemas.microsoft.com/ado/2008/09/edm">
      <EntityContainer Name="AdventureWorksEntities" annotation:LazyLoadingEnabled="true">
        <EntitySet Name="Addresses" EntityType="AdventureWorksModel.Address" />
        <EntitySet Name="Contacts" EntityType="AdventureWorksModel.Contact" />
        <EntitySet Name="Products" EntityType="AdventureWorksModel.Product" />
        <EntitySet Name="SalesOrderDetails" EntityType="AdventureWorksModel.SalesOrderDetail" />
        <EntitySet Name="SalesOrderHeaders" EntityType="AdventureWorksModel.SalesOrderHeader" />
        <AssociationSet Name="FK_SalesOrderHeader_Address_BillToAddressID" Association="AdventureWorksModel.FK_SalesOrderHeader_Address_BillToAddressID">
          <End Role="Address" EntitySet="Addresses" />
          <End Role="SalesOrderHeader" EntitySet="SalesOrderHeaders" />
        </AssociationSet>
        <AssociationSet Name="FK_SalesOrderHeader_Address_ShipToAddressID" Association="AdventureWorksModel.FK_SalesOrderHeader_Address_ShipToAddressID">
          <End Role="Address" EntitySet="Addresses" />
          <End Role="SalesOrderHeader" EntitySet="SalesOrderHeaders" />
        </AssociationSet>
        <AssociationSet Name="FK_SalesOrderHeader_Contact_ContactID" Association="AdventureWorksModel.FK_SalesOrderHeader_Contact_ContactID">
          <End Role="Contact" EntitySet="Contacts" />
          <End Role="SalesOrderHeader" EntitySet="SalesOrderHeaders" />
        </AssociationSet>
        <AssociationSet Name="FK_SalesOrderDetail_SalesOrderHeader_SalesOrderID" Association="AdventureWorksModel.FK_SalesOrderDetail_SalesOrderHeader_SalesOrderID">
          <End Role="SalesOrderHeader" EntitySet="SalesOrderHeaders" />
          <End Role="SalesOrderDetail" EntitySet="SalesOrderDetails" />
        </AssociationSet>
      </EntityContainer>
      <EntityType Name="Address">
        <Key>
          <PropertyRef Name="AddressID" />
        </Key>
        <Property Name="AddressID" Type="Int32" Nullable="false" annotation:StoreGeneratedPattern="Identity" />
        <Property Name="AddressLine1" Type="String" Nullable="false" MaxLength="60" Unicode="true" FixedLength="false" />
        <Property Name="AddressLine2" Type="String" MaxLength="60" Unicode="true" FixedLength="false" />
        <Property Name="City" Type="String" Nullable="false" MaxLength="30" Unicode="true" FixedLength="false" />
        <Property Name="StateProvinceID" Type="Int32" Nullable="false" />
        <Property Name="PostalCode" Type="String" Nullable="false" MaxLength="15" Unicode="true" FixedLength="false" />
        <Property Name="rowguid" Type="Guid" Nullable="false" />
        <Property Name="ModifiedDate" Type="DateTime" Nullable="false" />
        <NavigationProperty Name="SalesOrderHeaders" Relationship="AdventureWorksModel.FK_SalesOrderHeader_Address_BillToAddressID" FromRole="Address" ToRole="SalesOrderHeader" />
        <NavigationProperty Name="SalesOrderHeaders1" Relationship="AdventureWorksModel.FK_SalesOrderHeader_Address_ShipToAddressID" FromRole="Address" ToRole="SalesOrderHeader" />
      </EntityType>
      <EntityType Name="Contact">
        <Key>
          <PropertyRef Name="ContactID" />
        </Key>
        <Property Name="ContactID" Type="Int32" Nullable="false" annotation:StoreGeneratedPattern="Identity" />
        <Property Name="NameStyle" Type="Boolean" Nullable="false" />
        <Property Name="Title" Type="String" MaxLength="8" Unicode="true" FixedLength="false" />
        <Property Name="FirstName" Type="String" Nullable="false" MaxLength="50" Unicode="true" FixedLength="false" />
        <Property Name="MiddleName" Type="String" MaxLength="50" Unicode="true" FixedLength="false" />
        <Property Name="LastName" Type="String" Nullable="false" MaxLength="50" Unicode="true" FixedLength="false" />
        <Property Name="Suffix" Type="String" MaxLength="10" Unicode="true" FixedLength="false" />
        <Property Name="EmailPromotion" Type="Int32" Nullable="false" />
        <Property Name="PasswordHash" Type="String" Nullable="false" MaxLength="128" Unicode="false" FixedLength="false" />
        <Property Name="PasswordSalt" Type="String" Nullable="false" MaxLength="10" Unicode="false" FixedLength="false" />
        <Property Name="AdditionalContactInfo" Type="String" MaxLength="Max" Unicode="true" FixedLength="false" />
        <Property Name="rowguid" Type="Guid" Nullable="false" />
        <Property Name="ModifiedDate" Type="DateTime" Nullable="false" />
        <NavigationProperty Name="SalesOrderHeaders" Relationship="AdventureWorksModel.FK_SalesOrderHeader_Contact_ContactID" FromRole="Contact" ToRole="SalesOrderHeader" />
        <Property Name="EmailPhoneComplexProperty" Type="AdventureWorksModel.EmailPhone" Nullable="false" />
      </EntityType>
      <EntityType Name="Product">
        <Key>
          <PropertyRef Name="ProductID" />
        </Key>
        <Property Name="ProductID" Type="Int32" Nullable="false" annotation:StoreGeneratedPattern="Identity" />
        <Property Name="Name" Type="String" Nullable="false" MaxLength="50" Unicode="true" FixedLength="false" />
        <Property Name="ProductNumber" Type="String" Nullable="false" MaxLength="25" Unicode="true" FixedLength="false" />
        <Property Name="MakeFlag" Type="Boolean" Nullable="false" />
        <Property Name="FinishedGoodsFlag" Type="Boolean" Nullable="false" />
        <Property Name="Color" Type="String" MaxLength="15" Unicode="true" FixedLength="false" />
        <Property Name="SafetyStockLevel" Type="Int16" Nullable="false" />
        <Property Name="ReorderPoint" Type="Int16" Nullable="false" />
        <Property Name="StandardCost" Type="Decimal" Nullable="false" Precision="19" Scale="4" />
        <Property Name="ListPrice" Type="Decimal" Nullable="false" Precision="19" Scale="4" />
        <Property Name="Size" Type="String" MaxLength="5" Unicode="true" FixedLength="false" />
        <Property Name="SizeUnitMeasureCode" Type="String" MaxLength="3" Unicode="true" FixedLength="true" />
        <Property Name="WeightUnitMeasureCode" Type="String" MaxLength="3" Unicode="true" FixedLength="true" />
        <Property Name="Weight" Type="Decimal" Precision="8" Scale="2" />
        <Property Name="DaysToManufacture" Type="Int32" Nullable="false" />
        <Property Name="ProductLine" Type="String" MaxLength="2" Unicode="true" FixedLength="true" />
        <Property Name="Class" Type="String" MaxLength="2" Unicode="true" FixedLength="true" />
        <Property Name="Style" Type="String" MaxLength="2" Unicode="true" FixedLength="true" />
        <Property Name="ProductSubcategoryID" Type="Int32" />
        <Property Name="ProductModelID" Type="Int32" />
        <Property Name="SellStartDate" Type="DateTime" Nullable="false" />
        <Property Name="SellEndDate" Type="DateTime" />
        <Property Name="DiscontinuedDate" Type="DateTime" />
        <Property Name="rowguid" Type="Guid" Nullable="false" />
        <Property Name="ModifiedDate" Type="DateTime" Nullable="false" />
      </EntityType>
      <EntityType Name="SalesOrderDetail">
        <Key>
          <PropertyRef Name="SalesOrderID" />
          <PropertyRef Name="SalesOrderDetailID" />
        </Key>
        <Property Name="SalesOrderID" Type="Int32" Nullable="false" />
        <Property Name="SalesOrderDetailID" Type="Int32" Nullable="false" annotation:StoreGeneratedPattern="Identity" />
        <Property Name="CarrierTrackingNumber" Type="String" MaxLength="25" Unicode="true" FixedLength="false" 
                  DefaultValue="1A-2B-3C"
                  a:SetterAccess="Protected" xmlns:a="https://schemas.microsoft.com/ado/2006/04/codegeneration" />
        <Property Name="OrderQty" Type="Int16" Nullable="false" />
        <Property Name="ProductID" Type="Int32" Nullable="false" />
        <Property Name="SpecialOfferID" Type="Int32" Nullable="false" />
        <Property Name="UnitPrice" Type="Decimal" Nullable="false" Precision="19" Scale="4" />
        <Property Name="UnitPriceDiscount" Type="Decimal" Nullable="false" Precision="19" Scale="4" />
        <Property Name="LineTotal" Type="Decimal" Nullable="false" Precision="38" Scale="6" annotation:StoreGeneratedPattern="Computed" />
        <Property Name="rowguid" Type="Guid" Nullable="false" />
        <Property Name="ModifiedDate" Type="DateTime" Nullable="false" />
        <NavigationProperty Name="SalesOrderHeader" Relationship="AdventureWorksModel.FK_SalesOrderDetail_SalesOrderHeader_SalesOrderID" FromRole="SalesOrderDetail" ToRole="SalesOrderHeader" />
      </EntityType>
      <EntityType Name="SalesOrderHeader">
        <Key>
          <PropertyRef Name="SalesOrderID" />
        </Key>
        <Property Name="SalesOrderID" Type="Int32" Nullable="false" annotation:StoreGeneratedPattern="Identity" />
        <Property Name="RevisionNumber" Type="Byte" Nullable="false" />
        <Property Name="OrderDate" Type="DateTime" Nullable="false" />
        <Property Name="DueDate" Type="DateTime" Nullable="false" />
        <Property Name="ShipDate" Type="DateTime" />
        <Property Name="Status" Type="Byte" Nullable="false" ConcurrencyMode="Fixed" />
        <Property Name="OnlineOrderFlag" Type="Boolean" Nullable="false" />
        <Property Name="SalesOrderNumber" Type="String" Nullable="false" MaxLength="25" Unicode="true" FixedLength="false" annotation:StoreGeneratedPattern="Computed" />
        <Property Name="PurchaseOrderNumber" Type="String" MaxLength="25" Unicode="true" FixedLength="false" />
        <Property Name="AccountNumber" Type="String" MaxLength="15" Unicode="true" FixedLength="false" />
        <Property Name="CustomerID" Type="Int32" Nullable="false" />
        <Property Name="ContactID" Type="Int32" Nullable="false" />
        <Property Name="SalesPersonID" Type="Int32" />
        <Property Name="TerritoryID" Type="Int32" />
        <Property Name="BillToAddressID" Type="Int32" Nullable="false" />
        <Property Name="ShipToAddressID" Type="Int32" Nullable="false" />
        <Property Name="ShipMethodID" Type="Int32" Nullable="false" />
        <Property Name="CreditCardID" Type="Int32" />
        <Property Name="CreditCardApprovalCode" Type="String" MaxLength="15" Unicode="false" FixedLength="false" />
        <Property Name="CurrencyRateID" Type="Int32" />
        <Property Name="SubTotal" Type="Decimal" Nullable="false" Precision="19" Scale="4" />
        <Property Name="TaxAmt" Type="Decimal" Nullable="false" Precision="19" Scale="4" />
        <Property Name="Freight" Type="Decimal" Nullable="false" Precision="19" Scale="4" />
        <Property Name="TotalDue" Type="Decimal" Nullable="false" Precision="19" Scale="4" annotation:StoreGeneratedPattern="Computed" />
        <Property Name="Comment" Type="String" MaxLength="128" Unicode="true" FixedLength="false" />
        <Property Name="rowguid" Type="Guid" Nullable="false" />
        <Property Name="ModifiedDate" Type="DateTime" Nullable="false" />
        <NavigationProperty Name="Address" Relationship="AdventureWorksModel.FK_SalesOrderHeader_Address_BillToAddressID" FromRole="SalesOrderHeader" ToRole="Address" />
        <NavigationProperty Name="Address1" Relationship="AdventureWorksModel.FK_SalesOrderHeader_Address_ShipToAddressID" FromRole="SalesOrderHeader" ToRole="Address" />
        <NavigationProperty Name="Contact" Relationship="AdventureWorksModel.FK_SalesOrderHeader_Contact_ContactID" FromRole="SalesOrderHeader" ToRole="Contact" />
        <NavigationProperty Name="SalesOrderDetails" Relationship="AdventureWorksModel.FK_SalesOrderDetail_SalesOrderHeader_SalesOrderID" FromRole="SalesOrderHeader" ToRole="SalesOrderDetail" />
      </EntityType>
      <Association Name="FK_SalesOrderHeader_Address_BillToAddressID">
        <End Role="Address" Type="AdventureWorksModel.Address" Multiplicity="1" />
        <End Role="SalesOrderHeader" Type="AdventureWorksModel.SalesOrderHeader" Multiplicity="*" />
        <ReferentialConstraint>
          <Principal Role="Address">
            <PropertyRef Name="AddressID" />
          </Principal>
          <Dependent Role="SalesOrderHeader">
            <PropertyRef Name="BillToAddressID" />
          </Dependent>
        </ReferentialConstraint>
      </Association>
      <Association Name="FK_SalesOrderHeader_Address_ShipToAddressID">
        <End Role="Address" Type="AdventureWorksModel.Address" Multiplicity="1" />
        <End Role="SalesOrderHeader" Type="AdventureWorksModel.SalesOrderHeader" Multiplicity="*" />
        <ReferentialConstraint>
          <Principal Role="Address">
            <PropertyRef Name="AddressID" />
          </Principal>
          <Dependent Role="SalesOrderHeader">
            <PropertyRef Name="ShipToAddressID" />
          </Dependent>
        </ReferentialConstraint>
      </Association>
      <Association Name="FK_SalesOrderHeader_Contact_ContactID">
        <End Role="Contact" Type="AdventureWorksModel.Contact" Multiplicity="1" />
        <End Role="SalesOrderHeader" Type="AdventureWorksModel.SalesOrderHeader" Multiplicity="*" />
        <ReferentialConstraint>
          <Principal Role="Contact">
            <PropertyRef Name="ContactID" />
          </Principal>
          <Dependent Role="SalesOrderHeader">
            <PropertyRef Name="ContactID" />
          </Dependent>
        </ReferentialConstraint>
      </Association>
      <Association Name="FK_SalesOrderDetail_SalesOrderHeader_SalesOrderID">
        <End Role="SalesOrderHeader" Type="AdventureWorksModel.SalesOrderHeader" Multiplicity="1">
          <OnDelete Action="Cascade" />
        </End>
        <End Role="SalesOrderDetail" Type="AdventureWorksModel.SalesOrderDetail" Multiplicity="*" />
        <ReferentialConstraint>
          <Principal Role="SalesOrderHeader">
            <PropertyRef Name="SalesOrderID" />
          </Principal>
          <Dependent Role="SalesOrderDetail">
            <PropertyRef Name="SalesOrderID" />
          </Dependent>
        </ReferentialConstraint>
      </Association>
      <ComplexType Name="EmailPhone">
        <Property Type="String" Name="EmailAddress" MaxLength="50" FixedLength="false" Unicode="true" />
        <Property Type="String" Name="Phone" MaxLength="25" FixedLength="false" Unicode="true" /></ComplexType>
    </Schema>
    

Para crear el archivo del lenguaje de especificación de asignaciones (MSL)

  • Agregue un archivo denominado AdventureWorks.msl al directorio del proyecto y péguelo en el contenido siguiente:

    <Mapping Space="C-S" xmlns="https://schemas.microsoft.com/ado/2008/09/mapping/cs">
      <EntityContainerMapping StorageEntityContainer="AdventureWorksModelStoreContainer" CdmEntityContainer="AdventureWorksEntities">
        <EntitySetMapping Name="Addresses"><EntityTypeMapping TypeName="AdventureWorksModel.Address"><MappingFragment StoreEntitySet="Address">
          <ScalarProperty Name="AddressID" ColumnName="AddressID" />
          <ScalarProperty Name="AddressLine1" ColumnName="AddressLine1" />
          <ScalarProperty Name="AddressLine2" ColumnName="AddressLine2" />
          <ScalarProperty Name="City" ColumnName="City" />
          <ScalarProperty Name="StateProvinceID" ColumnName="StateProvinceID" />
          <ScalarProperty Name="PostalCode" ColumnName="PostalCode" />
          <ScalarProperty Name="rowguid" ColumnName="rowguid" />
          <ScalarProperty Name="ModifiedDate" ColumnName="ModifiedDate" />
        </MappingFragment></EntityTypeMapping></EntitySetMapping>
        <EntitySetMapping Name="Contacts"><EntityTypeMapping TypeName="AdventureWorksModel.Contact"><MappingFragment StoreEntitySet="Contact">
          <ScalarProperty Name="ContactID" ColumnName="ContactID" />
          <ScalarProperty Name="NameStyle" ColumnName="NameStyle" />
          <ScalarProperty Name="Title" ColumnName="Title" />
          <ScalarProperty Name="FirstName" ColumnName="FirstName" />
          <ScalarProperty Name="MiddleName" ColumnName="MiddleName" />
          <ScalarProperty Name="LastName" ColumnName="LastName" />
          <ScalarProperty Name="Suffix" ColumnName="Suffix" />
          <ScalarProperty Name="EmailPromotion" ColumnName="EmailPromotion" />
          <ScalarProperty Name="PasswordHash" ColumnName="PasswordHash" />
          <ScalarProperty Name="PasswordSalt" ColumnName="PasswordSalt" />
          <ScalarProperty Name="AdditionalContactInfo" ColumnName="AdditionalContactInfo" />
          <ScalarProperty Name="rowguid" ColumnName="rowguid" />
          <ScalarProperty Name="ModifiedDate" ColumnName="ModifiedDate" />
              <ComplexProperty Name="EmailPhoneComplexProperty">
                <ScalarProperty Name="Phone" ColumnName="Phone" />
                <ScalarProperty Name="EmailAddress" ColumnName="EmailAddress" /></ComplexProperty>
        </MappingFragment></EntityTypeMapping></EntitySetMapping>
        <EntitySetMapping Name="Products"><EntityTypeMapping TypeName="AdventureWorksModel.Product"><MappingFragment StoreEntitySet="Product">
          <ScalarProperty Name="ProductID" ColumnName="ProductID" />
          <ScalarProperty Name="Name" ColumnName="Name" />
          <ScalarProperty Name="ProductNumber" ColumnName="ProductNumber" />
          <ScalarProperty Name="MakeFlag" ColumnName="MakeFlag" />
          <ScalarProperty Name="FinishedGoodsFlag" ColumnName="FinishedGoodsFlag" />
          <ScalarProperty Name="Color" ColumnName="Color" />
          <ScalarProperty Name="SafetyStockLevel" ColumnName="SafetyStockLevel" />
          <ScalarProperty Name="ReorderPoint" ColumnName="ReorderPoint" />
          <ScalarProperty Name="StandardCost" ColumnName="StandardCost" />
          <ScalarProperty Name="ListPrice" ColumnName="ListPrice" />
          <ScalarProperty Name="Size" ColumnName="Size" />
          <ScalarProperty Name="SizeUnitMeasureCode" ColumnName="SizeUnitMeasureCode" />
          <ScalarProperty Name="WeightUnitMeasureCode" ColumnName="WeightUnitMeasureCode" />
          <ScalarProperty Name="Weight" ColumnName="Weight" />
          <ScalarProperty Name="DaysToManufacture" ColumnName="DaysToManufacture" />
          <ScalarProperty Name="ProductLine" ColumnName="ProductLine" />
          <ScalarProperty Name="Class" ColumnName="Class" />
          <ScalarProperty Name="Style" ColumnName="Style" />
          <ScalarProperty Name="ProductSubcategoryID" ColumnName="ProductSubcategoryID" />
          <ScalarProperty Name="ProductModelID" ColumnName="ProductModelID" />
          <ScalarProperty Name="SellStartDate" ColumnName="SellStartDate" />
          <ScalarProperty Name="SellEndDate" ColumnName="SellEndDate" />
          <ScalarProperty Name="DiscontinuedDate" ColumnName="DiscontinuedDate" />
          <ScalarProperty Name="rowguid" ColumnName="rowguid" />
          <ScalarProperty Name="ModifiedDate" ColumnName="ModifiedDate" />
        </MappingFragment></EntityTypeMapping></EntitySetMapping>
        <EntitySetMapping Name="SalesOrderDetails"><EntityTypeMapping TypeName="AdventureWorksModel.SalesOrderDetail"><MappingFragment StoreEntitySet="SalesOrderDetail">
          <ScalarProperty Name="SalesOrderID" ColumnName="SalesOrderID" />
          <ScalarProperty Name="SalesOrderDetailID" ColumnName="SalesOrderDetailID" />
          <ScalarProperty Name="CarrierTrackingNumber" ColumnName="CarrierTrackingNumber" />
          <ScalarProperty Name="OrderQty" ColumnName="OrderQty" />
          <ScalarProperty Name="ProductID" ColumnName="ProductID" />
          <ScalarProperty Name="SpecialOfferID" ColumnName="SpecialOfferID" />
          <ScalarProperty Name="UnitPrice" ColumnName="UnitPrice" />
          <ScalarProperty Name="UnitPriceDiscount" ColumnName="UnitPriceDiscount" />
          <ScalarProperty Name="LineTotal" ColumnName="LineTotal" />
          <ScalarProperty Name="rowguid" ColumnName="rowguid" />
          <ScalarProperty Name="ModifiedDate" ColumnName="ModifiedDate" />
        </MappingFragment></EntityTypeMapping></EntitySetMapping>
        <EntitySetMapping Name="SalesOrderHeaders"><EntityTypeMapping TypeName="AdventureWorksModel.SalesOrderHeader"><MappingFragment StoreEntitySet="SalesOrderHeader">
          <ScalarProperty Name="SalesOrderID" ColumnName="SalesOrderID" />
          <ScalarProperty Name="RevisionNumber" ColumnName="RevisionNumber" />
          <ScalarProperty Name="OrderDate" ColumnName="OrderDate" />
          <ScalarProperty Name="DueDate" ColumnName="DueDate" />
          <ScalarProperty Name="ShipDate" ColumnName="ShipDate" />
          <ScalarProperty Name="Status" ColumnName="Status" />
          <ScalarProperty Name="OnlineOrderFlag" ColumnName="OnlineOrderFlag" />
          <ScalarProperty Name="SalesOrderNumber" ColumnName="SalesOrderNumber" />
          <ScalarProperty Name="PurchaseOrderNumber" ColumnName="PurchaseOrderNumber" />
          <ScalarProperty Name="AccountNumber" ColumnName="AccountNumber" />
          <ScalarProperty Name="CustomerID" ColumnName="CustomerID" />
          <ScalarProperty Name="ContactID" ColumnName="ContactID" />
          <ScalarProperty Name="SalesPersonID" ColumnName="SalesPersonID" />
          <ScalarProperty Name="TerritoryID" ColumnName="TerritoryID" />
          <ScalarProperty Name="BillToAddressID" ColumnName="BillToAddressID" />
          <ScalarProperty Name="ShipToAddressID" ColumnName="ShipToAddressID" />
          <ScalarProperty Name="ShipMethodID" ColumnName="ShipMethodID" />
          <ScalarProperty Name="CreditCardID" ColumnName="CreditCardID" />
          <ScalarProperty Name="CreditCardApprovalCode" ColumnName="CreditCardApprovalCode" />
          <ScalarProperty Name="CurrencyRateID" ColumnName="CurrencyRateID" />
          <ScalarProperty Name="SubTotal" ColumnName="SubTotal" />
          <ScalarProperty Name="TaxAmt" ColumnName="TaxAmt" />
          <ScalarProperty Name="Freight" ColumnName="Freight" />
          <ScalarProperty Name="TotalDue" ColumnName="TotalDue" />
          <ScalarProperty Name="Comment" ColumnName="Comment" />
          <ScalarProperty Name="rowguid" ColumnName="rowguid" />
          <ScalarProperty Name="ModifiedDate" ColumnName="ModifiedDate" />
        </MappingFragment></EntityTypeMapping></EntitySetMapping>
      </EntityContainerMapping>
    </Mapping>
    

Vea también

Conceptos

Tutorial rápido (Entity Framework)

Otros recursos

Especificaciones CSDL, SSDL y MSL