2010-04-17 17 views

Respuesta

3

Creo que lo que pide es ais si se puede unir tablas de diferentes bases de datos, no los diferentes proveedores, lo que resulta en una entidad asignados a dos o más tablas o vistas desde diferentes bases de datos.

Si lo piensa bien, cuando crea un modelo EDM con Visual Studio, le pide que proporcione una base de datos existente y cuando termina de crear el modelo genera una cadena de conexión EF que dirige internamente a la base de datos subyacente dada Cadena de conexión.

por ejemplo: metadatos = res: // /EFTestModel.csdl|res:// /EFTestModel.ssdl|res:// /EFTestModel.msl;provider=System.Data.SqlClient; cadena de conexión de proveedor = "Data Source = \;. Initial Catalog = EFTest; Integrated Security = true; MultipleActiveResultSets = True" *

Así que cada modelo coincide sólo con una base de datos, solamente una cadena de conexión.

EF4 aún no es compatible con la creación de un modelo conceptual que funcione con N modelos de almacenamiento. Al menos esto no es compatible con ningún proveedor incorporado. Quizás en el futuro esto podría hacerse a través de un nuevo proveedor que combine el soporte de muchos almacenes (de los mismos proveedores o diferentes).

No he investigado lo suficiente, pero tal vez Windows Server AppFabric (Codename Velocity) podría ser el puente para pasar por esta brecha.

Nota: He tratado incluso de editar manualmente el código XML para el EDM (edmx) para insertar un segundo elemento en el interior del < edmx: StorageModels > etiqueta pero no coincide con el esquema XML EDM de modo VS advierte al respecto: error 10021: Elemento de esquema duplicado encontrado.

Rafa Ortega MAP2010

4

De hecho, me encontré una manera de hacer un palmo modelo de EF múltiples bases de datos si su base de datos soporta sinónimos. Básicamente, configura los sinónimos en Database2 en Database1, crea modelos de edmx separados para cada uno, luego combina el XML

Publiqué los pasos exactos para hacer que un archivo edmx abarque varias bases de datos here si te interesa, junto con un script para hacer la fusión para usted cada vez que algo cambia.

+0

¿No ha tenido problemas a largo plazo? ¿Es completamente compatible? –

+0

Gran enlace. Muy ingenioso –

+1

@LuisFilipe El proyecto para el que hice esto fue cancelado, por lo que nunca tuve la oportunidad de probarlo completamente. Por lo que sí tuve la oportunidad de probar, las únicas restricciones reales eran las restricciones vigentes para los "sinónimos". Por ejemplo, si su Sinónimo apunta a otro servidor, está limitado a las reglas SQL para acceder a los servidores vinculados. – Rachel

Cuestiones relacionadas