Utilizzo del codice Entity Framework 4.3.1 e Migrazioni dei dati.Come eseguire l'override degli script SQL generati da MigratorScriptingDecorator
Ho scritto un'utilità per generare automaticamente gli script di Migrazione per un database di destinazione, utilizzando il MigratorScriptingDecorator.
Tuttavia, a volte quando si ricrea il database di destinazione da zero, lo script generato non è valido, in quanto dichiara una variabile con lo stesso nome due volte.
Il nome della variabile è @ var0.
Questo sembra accadere quando sono applicate più migrazioni e quando almeno due risultano in un vincolo predefinito che viene eliminato.
Il problema si verifica sia durante la generazione del codice del modulo di script, e quando si utilizza il comando console Package Manager:
Update-Database -Script
Qui ci sono i frammenti di offendere formare lo script generato:
DECLARE @var0 nvarchar(128)
SELECT @var0 = name
FROM sys.default_constraints
WHERE parent_object_id = object_id(N'SomeTableName')
e
DECLARE @var0 nvarchar(128)
SELECT @var0 = name
FROM sys.default_constraints
WHERE parent_object_id = object_id(N'SomeOtherTableName')
Mi piacerebbe essere in grado di scavalcare il punto in cui si ge annulla l'SQL per ogni migrazione, quindi aggiunge un'istruzione "GO" in modo che ogni migrazione sia in un batch separato, il che risolverebbe il problema.
Qualcuno ha qualche idea su come fare questo, o se sto abbaiando sull'albero sbagliato allora forse potresti suggerire un approccio migliore?
pensi che una soluzione simile potrebbe essere possibile per l'SQL generato per le normali inserti tavolo diretti? –