tipo de asociación
El tipo de asociación (también denominado asociación) es el principal bloque de creación para la descripción de relaciones en Entity Data Model (EDM). En un modelo conceptual, una asociación representa una relación entre dos tipos de entidad (como, por ejemplo, Customer
y Order
). En una aplicación, una instancia de una asociación representa una asociación concreta (como por ejemplo una asociación entre una instancia de Customer
y una instancia de Order
). Las instancias de asociación se agrupan de manera lógica en un conjunto de asociaciones.
Una definición de asociación contiene la siguiente información:
Un nombre único. (Requerido)
Dos extremos de asociación, uno para cada tipo de entidad de la relación. (Requerido)
Nota
Una asociación no puede representar una relación entre más de dos tipos de entidad. Sin embargo, una asociación sí puede definir una auto-relación especificando el mismo tipo de entidad para cada uno de sus extremos de asociación.
Una restricción de integridad referencial. (Opcional)
Cada extremo de la asociación debe especificar una multiplicidad de extremo de asociación que indica el número de instancias de tipo de entidad que pueden existir en un extremo de la asociación. La multiplicidad de extremo de asociación puede tener el valor uno (1), cero o uno (0..1), o muchos (*). Es posible acceder a las instancias de tipo de entidad situadas en un extremo de la asociación mediante las propiedades de navegación o las claves externas, si estas se exponen en un tipo de entidad. Para más información, consulte Entity Data Model: Claves externas.
Ejemplo
El diagrama siguiente muestra un modelo conceptual con dos asociaciones: PublishedBy
y WrittenBy
. Los extremos de asociación para la asociación PublishedBy
son los tipos de entidad Book
y Publisher
. La multiplicidad del extremo Publisher
es uno (1) y la multiplicidad del extremo Book
es muchos (*), lo que indica que un editor publica muchos libros y que un libro solo puede ser publicado por un editor.
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. El código CSDL siguiente define la asociación PublishedBy
mostrada en el diagrama anterior:
<Association Name="PublishedBy">
<End Type="BooksModel.Book" Role="Book" Multiplicity="*" />
<End Type="BooksModel.Publisher" Role="Publisher" Multiplicity="1" />
</Association>