propriedadeproperty

As propriedades são os blocos de construção fundamentais dos tipos de entidade e tipos complexos.Properties are the fundamental building blocks of entity types and complex types. As propriedades definem a forma e as características de dados que uma instância do tipo de entidade ou a instância do tipo complexo conterão.Properties define the shape and characteristics of data that an entity type instance or complex type instance will contain. As propriedades em um modelo conceitual são análogas as propriedades definidas em uma classe.Properties in a conceptual model are analogous to properties defined on a class. Da mesma forma que as propriedades em uma classe definem a forma da classe e transportam informações sobre objetos, as propriedades em um modelo conceitual definem a forma de um tipo de entidade e transportam informações sobre as instâncias dos tipos de entidade.In the same way that properties on a class define the shape of the class and carry information about objects, properties in a conceptual model define the shape of an entity type and carry information about entity type instances.

Observação

As propriedades, como descrito neste tópico, são diferentes de propriedades de navegação.Properties, as described in this topic, are different from navigation properties. Para obter mais informações, consulte Propriedades de navegação.For more information, see navigation properties.

Uma definição de propriedade contém as informações a seguir:A property definition contains the following information:

  • Um nome de propriedade.A property name. (Necessário)(Required)

  • Um tipo de propriedade.A property type. (Necessário)(Required)

  • Um conjunto de facetas.A set of facets. (Opcional)(Optional)

Uma propriedade pode conter dados primitivos (como uma cadeia de caracteres, um número inteiro ou um valor booliano) ou dados estruturados (como um tipo complexo).A property can contain primitive data (such as a string, an integer, or a Boolean value), or structured data (such as a complex type). As propriedades que são do tipo primitivo também são chamadas propriedades escalares.Properties that are of primitive type are also called scalar properties. Para obter mais informações, consulte modelo de dados de entidade: tipos de dados primitivos.For more information, see Entity Data Model: Primitive Data Types.

Observação

Um tipo complexo pode, em si, para ter as propriedades que são tipos complexos.A complex type can, itself, have properties that are complex types.

ExemploExample

O diagrama a seguir mostra um modelo conceitual com três tipos de entidade: Book, Publisher, e Author.The diagram below shows a conceptual model with three entity types: Book, Publisher, and Author. Cada tipo de entidade tem várias propriedades, embora as informações de tipo para cada propriedade não é transmitida no diagrama.Each entity type has several properties, although type information for each property is not conveyed in the diagram. As propriedades que são chaves de entidade são indicadas com (chave).Properties that are entity keys are denoted with (Key).

Modelo de exemplo com três tipos de entidade

O Entity Framework ADO.net usa uma DSL (linguagem específica de domínio) chamadaCSDL(linguagem de definição de esquema conceitual) para definir modelos conceituais.The ADO.NET Entity Framework uses a domain-specific language (DSL) called conceptual schema definition language (CSDL) to define conceptual models. CSDL seguir define o tipo de entidade de Book (conforme mostrado no diagrama anterior) e indica o tipo e o nome de cada propriedade usando atributos XML.The following CSDL defines the Book entity type (as shown in the diagram above) and indicates the type and name of each property by using XML attributes. Um aspecto opcional, Nullable, também é definida usando um atributo XML.An optional facet, Nullable, is also defined by using an XML attribute.

<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>

É possível que uma das propriedades mostradas no diagrama é uma propriedade do tipo complexo.It is possible that one of the properties shown in the diagram is a complex type property. Por exemplo, a propriedade de Address no tipo de entidade de Publisher pode ser uma propriedade do tipo complexo composto de várias propriedades escalares, como StreetAddress, City, StateOrProvince, Country, e PostalCode.For example, the Address property on the Publisher entity type could be a complex type property composed of several scalar properties, such as StreetAddress, City, StateOrProvince, Country, and PostalCode. A representação de CSDL de um tipo complexo seria como segue:The CSDL representation of such a complex type would be as follows:

<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 tambémSee also