Utilizziamo Entity Framework, Code First e nel nostro database abbiamo diverse tabelle che hanno lo stesso nome ma in schemi diversi.Codice EF, come registrare lo stesso nome di tabella con uno schema diverso?
Ho anche inserito i modelli in due diversi spazi dei nomi.
Come posso registrare queste tabelle nella mia classe DbContext?
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Data.Schema1.Contact>().ToTable("Contact", "schema1");
modelBuilder.Entity<Data.Schema2.Contact>().ToTable("Contact", "schema2");
}
Grazie per il vostro aiuto in anticipo!
Il problema è che se metto le classi in due diverse classi di contesto, non posso più unire le due tabelle ... C'è un modo per aggirare questo? Context.Contacts.Include ("Contacts2"); Dove Contact2 proviene da un contesto diverso. – sam360
No, non è possibile eseguire query con contesto incrociato. Quindi l'unica opzione per te è usare nomi diversi per le tue classi - renderà anche il tuo codice molto più leggibile quando devi lavorare con entrambi i tipi con gli stessi metodi. –
Se uso un nome di classe diverso e includo i due nello stesso contesto, EF mi dà un errore: – sam360