Sto lavorando all'applicazione principale ASP.NET in cui sto utilizzando Entity Framework per interagire con il database del server SQL. finora, stavo usando il comando Scaffold-DbContext
per creare un nuovo modello dal database del server SQL. Anche se volessimo creare DbContext
basato su più tabelle, potrei farlo usando flag -t
nel comando precedente. Tutto ciò che accade su un singolo database SQL.
Scaffold-DbContext "Server=XXXXXXXXX;Database=XXXXXXXX;User Id=XXXXX;Password:XXXXXX" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -t Table1 Table2
Dai comandi dei parametri di Scaffold-DbContext , non sono riuscito a trovare l'opzione per specificare diversi database.
In un nuovo scenario, devo unire 2 tabelle da diversi database SQL. C'è un modo per creare un modello composto da 2 tabelle da diversi database. Entrambe le tabelle utilizzano una relazione uno-a-uno tra di loro.
Ad esempio, DB1 ha table1 e DB2 ha table2. C'è un modo per creare un DbContext
che è costituito da queste 2 tabelle (tabella1 e tabella2)?
C'è un altro modo per raggiungere unire tra 2 tavoli da 2 diversi database?
No, non puoi farlo con EntityFramework (né 6.x né Core). Un DbContext è per database e puoi creare join solo nello stesso DbContext.
Puoi creare una vista e mappare la vista ai modelli di cui hai bisogno, ma iirc. la mappatura delle viste è ancora sulla tabella di marcia per EntityFramework Core. Può funzionare con EntityFramework 6.x però.
Modificare:
Almeno non puoi farlo con Linq / Fluent api. Puoi comunque eseguire query non elaborate. La presa: il progetto deve corrispondere esattamente al modello, non ci possono essere campi mancanti del modello. La mappatura ad-hoc per le non entità è sulla tabella di marcia per le versioni future di EntityFramework Core