2010-04-27 12 views
7

Me preguntaba si EF4 admite las relaciones cross-databse? Por ejemplo:relaciones de bases de datos EF4 cruzadas

DB1

Author 
    Id 
    Name 

DB2

Posts 
    Id 
    Content 
    db1.Author.Id 

Lo ideal sería que necesito hacer para obtener esta relación en mi modelo EF4?

¿Tienen alguna idea?

Gracias

Respuesta

3

Hace poco comenzaron un proyecto que utiliza marco de la entidad con dos bases de datos Oracle, uno y uno de SQL Server. No pude encontrar ninguna información con respecto a bases de datos cruzadas o soporte de bases de datos múltiples en el marco de la entidad.

La mayoría de los mensajes desde el equipo MS marco Entidad son un par de años de edad, e indican que entre ellos dos bases de datos en un único modelo no es una característica que será incluido en breve. Me interesaría tener una respuesta concreta sobre si se incluyó en 2010, aunque sospecho que la respuesta es no.

Actualmente el proyecto supera esta limitación al tener un modelo de entidad separado para cada base de datos. Esto ha resuelto el problema para la mayoría de los escenarios que hemos encontrado hasta ahora en el proyecto.

En los casos en que hemos necesitado para consultar los datos de las dos bases de datos, al mismo tiempo, simplemente crea una vista en uno o en otras bases de datos. Dado que estamos utilizando Oracle y SQL Server, esta vista utilizaría un servidor vinculado (SQL) o un DBLink (Oracle).

La desventaja de las vistas en el marco de la entidad es que hemos tenido que pasar más tiempo del que esperaba para que funcionen las claves principales.

Espero que esto ayude.

4

Si su base de datos soporta sinónimos, se puede engañar a EF para abarcar varias bases de datos. Escribí cómo hacerlo here.

Básicamente terminas con un archivo edmx por base de datos y un script que los fusiona en un único archivo edmx. Los sinónimos se utilizan para hacer referencia a una base de datos de otra utilizando el nombre real de la tabla, por lo que EF no arroja un ajuste cuando intenta acceder a database2.table desde database1. Aún debe configurar enlaces entre las dos bases de datos manualmente en el modelo EF, pero una vez configurados, se mantendrán incluso si vuelve a ejecutar el script de fusión.

secuencias de comandos para configurar Sinónimos y fusionar los archivos EDMX se publican en el enlace

+0

le sugiero que votar hasta mi sugerencia uservoice aquí: http://visualstudio.uservoice.com/forums/121579-visual-studio/ suggestions/2730532-make-entity-framework-designer-support-synonyms Si podemos obtener soporte de sinónimos en el diseñador, entonces todo es fácil. Además, anime a cualquier otra persona que encuentre que esté interesada en el soporte de bases de datos cruzadas para que vote esto. –

Cuestiones relacionadas