Vorrei implementare una sorta di ambiente di test per i progetti ASP.Net. Sto cercando di implementarlo come alternativa a prendere in giro il framework di entità.
Ecco cosa sto cercando di ottenere:
- Vengono utilizzate due classi
DBContext
, una per lo sviluppo, una per i test. - Queste due classi
DBContext
genereranno 2 database tramiteEnable-Migration
/Update-Migration
. Di nuovo, uno per lo sviluppo, uno per i test. - L'aggiunta di una nuova migrazione deve essere applicata sia all'ambiente di sviluppo che all'ambiente di test.
Fondamentalmente, il database di sviluppo e il database di test devono essere identici. Pertanto, il mio obiettivo è trovare un modo in cui dobbiamo eseguire solo ogni tipo di comando una sola volta per controllare entrambi gli ambienti:
-
Enable-Migrations
crea due classi di configurazione di migrazione. -
Add-Migration
può essere applicato ai due ambienti. -
Update-database
applica le migrazioni su entrambi gli ambienti.
Ecco il mio primo tentativo di tentativo nelle classi di contesto:
namespace Project.DAL
{
public class Context : DbContext
{
public Context(string connectionString) : base(connectionString) { }
public Context() : base() { }
public DbSet<User> Users { get; set; }
public DbSet<Team> Teams { get; set; }
public DbSet<Pool> Pools { get; set; }
public DbSet<Match> Matches { get; set; }
public DbSet<Invitation> Invitations { get; set; }
}
public class Dev : Context
{
public Dev() : base("project_dev") { }
}
public class Test : Context
{
public Test() : base("project_test") { }
}
}
Come vorresti che ti avvicinassi a questo? Vengo dal framework Ruby On Rails, che ha un ambiente di sviluppo / test simile a quello che sto cercando.
Questo è con l'approccio code-first. Quindi, idealmente, se si dovesse creare un nuovo progetto, progetta i suoi modelli e applica le migrazioni per popolare / creare due database che rappresentano gli ambienti di sviluppo e test.