propiedad

Las Propiedades son las unidades de creación fundamentales de los tipos de entidad y los tipos complejos. Las propiedades definen la forma y características de datos que una instancia del tipo de entidad o la instancia del tipo complejo contendrá. Las propiedades en un modelo conceptual son análogas a las propiedades definidas en una clase. Del mismo modo que las propiedades en una clase definen la forma de la clase y proporcionan información sobre los objetos, las propiedades en un modelo conceptual definen la forma de un tipo de entidad y proporcionan información sobre las instancias del tipo de entidad.

Nota:

Las propiedades, tal y como se describen en este tema, son diferentes de las propiedades de navegación. Para obtener más información, vea propiedades de navegación.

Una definición de propiedad contiene la siguiente información:

  • nombre de propiedad. (Requerido)

  • Un tipo de propiedad. (Requerido)

  • Un conjunto de facetas. (Opcional)

Una propiedad puede contener datos primitivos (como una cadena, un entero o un valor booleano) o estructura los datos (como un tipo complejo). Las propiedades de tipo primitivo también se denominan propiedades escalares. Para obtener más información, vea Entity Data Model: tipos de datos primitivos.

Nota:

Un tipo complejo puede, por sí mismo, tener propiedades complejas.

Ejemplo

El diagrama siguiente muestra un modelo conceptual con tres tipos de entidades: Book, Publisher y Author. Cada tipo de entidad tiene varias propiedades, aunque la información de tipo para cada propiedad no se muestra en el diagrama. Las propiedades que son claves de entidad se denotan con (Key).

Example model with three entity types

ADO.NET Entity Framework usa un lenguaje específico de dominio (DSL) denominado lenguaje de definición de esquemas conceptuales (CSDL) para definir los modelos conceptuales. En el siguiente CSDL se define el tipo de entidad Book (como se muestra en el diagrama anterior) y se indica el tipo y nombre de cada propiedad utilizando atributos XML. Una faceta opcional, Nullable, también se define utilizando un atributo de XML.

<EntityType Name="Book">
  <Key>
    <PropertyRef Name="ISBN" />
  </Key>
  <Property Type="String" Name="ISBN" Nullable="false" />
  <Property Type="String" Name="Title" Nullable="false" />
  <Property Type="Decimal" Name="Revision" Nullable="false" Precision="29" Scale="29" />
  <NavigationProperty Name="Publisher" Relationship="BooksModel.PublishedBy"
                      FromRole="Book" ToRole="Publisher" />
  <NavigationProperty Name="Authors" Relationship="BooksModel.WrittenBy"
                      FromRole="Book" ToRole="Author" />
</EntityType>

Es posible que una de las propiedades mostradas en el diagrama sea una propiedad de tipo complejo. Por ejemplo, la propiedad Address en el tipo de entidad Publisher podría ser una propiedad de tipo complejo compuesta de varias propiedades escalares, como StreetAddress, City, StateOrProvince, Country y PostalCode. La representación CSDL de un tipo complejo como el anterior sería como sigue:

<ComplexType Name="Address" >
  <Property Type="String" Name="StreetAddress" Nullable="false" />
  <Property Type="String" Name="City" Nullable="false" />
  <Property Type="String" Name="StateOrProvince" Nullable="false" />
  <Property Type="String" Name="Country" Nullable="false" />
  <Property Type="String" Name="PostalCode" Nullable="false" />
</ComplexType>

Consulte también