Transactions between many databases are very bad. Use different schemas or XPO#Table prefixes.
- EF6 has a significant amount of magic it performs around selecting the database connection and initializing the database... If the database does not exist, it is created... If none of the tables from the model exist in the database, the schema for the current model is added to the database. If migrations are enabled, then they are used to create the database.. EF Core does not perform any of this magic. The database connection must be explicitly configured in code. No initialization is performed. You must use DbContext.Database.Migrate()
Persistent entities don't necessarily have to be represented as POCO classes at runtime. NHibernate also supports dynamic models (using Dictionaries or C# dynamic). With this approach, you don't write persistent classes, only mapping files.