2013-01-05 13 views
12

Come è possibile modificare la migrazione fluente della colonna con il valore di data e ora predefinito che è l'ora della data corrente?migratore fluente. Come aggiungere una colonna datetime con valori predefiniti come data corrente?

quindi ho bisogno smth come questo:

ALTER TABLE database ADD column DATETIME DEFAULT GETDATE() NOT NULL;

solo per la migrazione fluente. Grazie.

+0

Grande risposta dopo una breve indagine: è necessario utilizzare il metodo di estensione WithDefault (SystemMethods.CurrentDateTime) dove SystemMethods può essere uno di: CurrentDateTime, CurrentUTCDateTime, NewGuid, NewSequentialId. – Seth

risposta

6

Probabilmente avete già trovato la documentazione per SystemMethods on the wiki. L'ho appena aggiornato in modo che rifletta l'ultima versione di FluentMigrator.

Voglio solo sottolineare che questi sono specifici del database e solo Sql Server ha tutti e cinque i SystemMethod implementati. Ciò rende le migrazioni meno portabili in quanto non è più sql standard che viene generato e alcuni dei SystemMethod non sono supportati per altri database (ad esempio, CurrentUser non sembra essere possibile in MySql).

Se si vede la necessità di eventuali altri allora fai il login come un problema in loco Github di FluentMigrator e cercheremo di inserirlo in

5

Visto che la risposta in realtà non includere qualsiasi codice:.

Create.Table(nameof(Report)) 
     .WithColumn(nameof(Report.Id)).AsInt32().NotNullable().PrimaryKey().Identity() 
     .WithColumn(nameof(Report.CreatedAt)).AsDateTime().Nullable() 
              .WithDefault(SystemMethods.CurrentDateTime); 

Il metodo WithDefault(SystemMethods) è il solutoin.

Problemi correlati