Si eres nuevo en EF y empiezas con EF4, la respuesta fácil es ignorar esto: es casi seguro que uses Asociaciones de claves extranjeras en lugar de Asociaciones independientes.
Una Foreign Key Association está respaldada por una relación de clave externa en la base de datos y esta relación se describe explícitamente en el modelo conceptual. Este tipo de asociación es nueva para EF4 y entiendo que es una concesión que sigue los problemas que la gente tenía con las Asociaciones Independientes.
Estrictamente si desea separar el esquema de almacenamiento y el esquema conceptual (que es el punto de EF) no le gustaría que su esquema conceptual sepa cosas como claves externas, ya que son una base de datos (es decir, almacenamiento) concepto. Las versiones anteriores de EF seguían este enfoque y tenemos esta cosa llamada Asociación Independiente.
Piense en Asociaciones independientes como asociaciones a las que EF rastrea sin el conocimiento de la clave externa subyacente. EF todavía lo admite, pero tienen debilidades importantes.
EF4 en VS2010 utilizará sus claves externas y creará relaciones de clave externa a menos que usted indique lo contrario. En general, funcionan como cabría esperar. Todavía hay algunos inconvenientes, p. alrededor de eliminaciones en cascada.
Si quieres aprender EF - puedo recomendar este libro:
http://learnentityframework.com/learnentityframework/
Todo lo que quiere saber, se explica muy claramente.
Okeedoke. ¿Pero cuáles son específicamente los problemas causados con n-tier y concurrencia? – anon
Bueno, la principal diferencia que no es la diferencia de esquema es que una entidad con una asociación independiente no expone la clave externa en la capa conceptual. La asociación se mantiene en un objeto separado. Dependiendo de cómo diseñe su aplicación, es más complejo pasar esta información adicional entre capas. Las asociaciones de claves foráneas son mucho más fáciles de trabajar, ya que puede simplemente establecer la clave externa directamente en la entidad o modificar el conjunto de entidades/entidades relacionadas expuestas. –
"Menos fácil de trabajar" en mi mente no se traduce necesariamente en "evitar". Este último sugiere que hay trampas específicas. ¿Hay algún artículo sobre estas trampas? (Tengo el libro de Julia Lerman, BTW.) – anon