Limitazione di Entity Framework

3

Mi chiedevo se qualcuno avesse lo stesso bisogno e perché (se possibile).

Il mio problema è: non riesco a creare un modello in EF utilizzando due tabelle di DB diversi senza alcune strane soluzioni alternative. Per il mio scopo è molto necessario.

Qualcuno di voi ha mai avuto bisogno di farlo? Che cosa hai fatto? E, come me, pensi che MS dovrebbe aggiungere questa funzione?

Grazie a tutti.

    
posta eestein 02.03.2011 - 14:06
fonte

3 risposte

2

Penso che il paradigma generale sia che un singolo modello EF va contro un singolo database. Puoi sempre creare più modelli in un progetto. Se hai bisogno di fare join o in altri modi di combinare i dati tra i due modelli, fallo con LINQ to Objects una volta che avrai i dati in memoria.

In alternativa, puoi esaminare le tecnologie che creano collegamenti da database a database direttamente all'interno del DBMS. So che sia SQL Server che Oracle hanno soluzioni per questo; Sono sicuro che altri importanti prodotti DMBS hanno caratteristiche simili. Usando questo, il tuo modello EF si collegherebbe solo a un database, ma quel primo database potrebbe avere viste che usano collegamenti a database per connettersi al secondo database e combinare i dati. Sarà quasi sicuramente più efficiente combinare i dati a livello di DBMS rispetto al livello EF.

    
risposta data 02.03.2011 - 14:15
fonte
0

L'unico modo per farlo è con Sinonimi.

In SQL Server, se dovessi utilizzare l'esempio MSDN

    USE tempdb;
GO
-- Create a synonym for the Product table in AdventureWorks2012.
CREATE SYNONYM MyProduct
FOR AdventureWorks2012.Production.Product;
GO

-- Query the Product table by using the synonym.
USE tempdb;
GO
SELECT ProductID, Name 
FROM MyProduct
WHERE ProductID < 5;
GO

Quindi EF sarebbe in grado di vedere MyProduct se fosse indirizzato a tempdb.

    
risposta data 27.12.2013 - 20:57
fonte
0

Recentemente ho avuto uno scenario simile per un progetto Entity Framework Database First. Ho dovuto creare un'entità dai dati distribuiti su più tabelle, infatti alcuni dati provenivano da un altro database (ma sullo stesso server Db).

Per aggirare questo problema ho creato stored procedure per i dati richiesti e importato la procedura in Entity Framework utilizzando Importa funzione in Model Browser.

Ora quando utilizzo quell'entità, richiama una stored procedure in background per recuperare i dati. La tua domanda su Microsoft aggiungendo questo come una funzione viene risposta, hanno già. Ecco a cosa servono le importazioni di funzioni.

    
risposta data 27.12.2013 - 21:25
fonte

Leggi altre domande sui tag