propriedade
As 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 dos dados que uma instância de tipo de entidade ou uma instância de tipo complexo conterá. As propriedades em um modelo conceitual são análogas às propriedades definidas em uma classe. Da mesma forma que as propriedades em uma classe definem a forma da classe e carregam informações sobre objetos, as propriedades em um modelo conceitual definem a forma de um tipo de entidade e carregam informações sobre instâncias de tipo de entidade.
Nota
As propriedades, conforme descrito neste tópico, são diferentes das propriedades de navegação. Para obter mais informações, consulte Propriedades de navegação.
Uma definição de propriedade contém as seguintes informações:
Um nome de propriedade. (Obrigatório)
Um tipo de propriedade. (Obrigatório)
Um conjunto de facetas. (Opcional)
Uma propriedade pode conter dados primitivos (como uma cadeia de caracteres, um inteiro ou um valor booleano) ou dados estruturados (como um tipo complexo). As propriedades que são do tipo primitivo também são chamadas de propriedades escalares. Para obter mais informações, consulte Modelo de dados de entidade: tipos de dados primitivos.
Nota
Um tipo complexo pode, por si só, ter propriedades que são tipos complexos.
Exemplo
O diagrama abaixo 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 sejam transmitidas no diagrama. As propriedades que são chaves de entidade são indicadas com (Key).
O ADO.NET Entity Framework usa uma linguagem específica de domínio (DSL) chamada linguagem de definição de esquema conceitual (CSDL) para definir modelos conceituais. A CSDL a seguir define o Book
tipo de entidade (como mostrado no diagrama acima) e indica o tipo e o nome de cada propriedade usando atributos XML. Uma faceta 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 seja uma propriedade de tipo complexo. Por exemplo, a Address
propriedade no Publisher
tipo de entidade pode ser uma propriedade de tipo complexo composta por várias propriedades escalares, como StreetAddress
, City
, StateOrProvince
, Country
e PostalCode
. A representação CSDL de um tipo tão complexo seria a seguinte:
<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>