sto creando un sito asp.net mvc4 utilizzando Entity Framework 5 con codefirst e il server SQL Express 2012.Come controllare valori di chiave primaria quando si semina dati con Entity Framework codefirst
Ho permesso migrazioni e ora farlo in il mio metodo Configuration.Seed: (nota che voglio impostare la chiave primaria su 8 anche se questo è il primo record nel database).
context.ProductCategoryDtoes.AddOrUpdate(x => x.Id,
new ProductCategoryDto() { Id = 8, Name = "category1" }
);
mio oggetto del modello è definita in questo modo:
[Table("ProductCategory")]
public class ProductCategoryDto {
public long Id { get; set; }
public string Name { get; set; }
}
Questo si traduce in una tabella in (SQL Server Express 2012) in cui la colonna Id ha Identità = true, semi di Identità = 1, incremento identità = 1.
Ora, quando corro migrazioni facendo una PM> Update-Database
questo risultato in una riga con id = 1.
Quindi la mia domanda è:
1) Come posso controllare i valori delle chiavi primarie auto-incrementate quando si seminano i dati.
2) Se la soluzione consiste nell'incrementare il valore di inizializzazione delle colonne chiave, come procedere quando si utilizza Database.SetInitializer(new DropCreateDatabaseAlways<MyContext>());
. Ciò nuke e ricostruisce il database ogni volta che aggiorno il database, quindi come dovrebbe essere aggiornato il valore del seme nel nuovo database?
sì, era quello che ho finito per fare. –