tipo de asociación (Entity Data Model)
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 la asociación se agrupan lógicamente en un conjunto de asociaciones.
Una definición de asociación contiene la siguiente información:
Un nombre único. (Necesario)
Dos extremos de asociación, uno para cada tipo de entidad de la relación. (Necesarios)
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 obtener acceso a las instancias de tipo de entidad situadas en un extremo de la asociación a través de las propiedades de navegación o las claves externas si estas se exponen en un tipo de entidad. Para obtener más información, vea 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>