propriedade

Propriedades são os blocos de construção fundamentais de tipos de entidade e tipos complexos. 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. As propriedades em um modelo conceitual são análogas as propriedades definidas em uma classe. 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.

Observação

As propriedades, como descrito neste tópico, são diferentes de propriedades de navegação. Para obter mais informações, confira propriedades de navegação.

Uma definição de propriedade contém as informações a seguir:

  • Um nome de propriedade. (Obrigatória)

  • Um tipo de propriedade. (Obrigatória)

  • Um conjunto de facetas. (Opcional)

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). As propriedades que são do tipo primitivo também são chamadas propriedades escalares. Para obter mais informações, confira Modelo de Dados de Entidade: tipos de dados primitivos.

Observação

Um tipo complexo pode, em si, para ter as propriedades que são tipos complexos.

Exemplo

O diagrama a seguir mostra um modelo conceitual com três tipos de entidade: Book, Publisher, e Author. Cada tipo de entidade tem várias propriedades, embora as informações de tipo para cada propriedade não é transmitida no diagrama. As propriedades que são chaves de entidade são denotadas com (chave).

Example model with three entity types

O Entity Framework do ADO.NET usa uma DSL (linguagem específica de domínio) chamada CSDL (linguagem de definição de esquema conceitual) para definir modelos conceituais. 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. Um aspecto opcional, Nullable, também é definida usando um atributo 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>

É possível que uma das propriedades mostradas no diagrama é uma propriedade do tipo complexo. 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. A representação de CSDL de um tipo complexo seria como segue:

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

Confira também