Sto cercando di aggiungere un vincolo univoco su due colonne. Ho trovato più fonti che dichiarano che dovrei usare il metodo HasAlternateKey per le applicazioni API EF Fluent Core. Tuttavia, dopo aver eseguito Add-Migration, il codice che viene generato nei file di migrazione non include il vincolo, quasi come se fosse intenzionalmente ignorato o non rilevato.
Ecco il codice ModelBuilder che sto usando:
modelBuilder.Entity<PlasmidStockCode>(e =>
{
e.ToTable("PlasmidStockCode");
e.HasKey(c => c.ID);
e.Property(c => c.ID).ValueGeneratedOnAdd();
e.HasAlternateKey(c => new { c.ClientName, c.PlasmidName });
e.HasMany(c => c.PlasmidStockComments).WithOne().HasForeignKey(c => c.PlasmidStockCodeID).OnDelete(DeleteBehavior.Restrict);
e.HasMany(c => c.PlasmidStockLots).WithOne().HasForeignKey(c => c.PlasmidStockCodeID).OnDelete(DeleteBehavior.Restrict);
e.HasMany(c => c.qPCRTargets).WithOne().HasForeignKey(c => c.PlasmidStockCodeID).OnDelete(DeleteBehavior.Restrict);
});
AddBaseConfiguration(modelBuilder);
}
Ho anche provato a usare .HasIndex, ma sfortunatamente non viene rilevato / incluso.
Qualche idea su cosa possa mancare? Grazie in anticipo!
Utilizzare i metodi IsUnique
e HasIndex
nel metodo OnModelCreating della classe OnModelCreating
per aggiungere la chiave composita alla tabella. Quindi aggiungere la migrazione utilizzando Add-Migration <YourMigrationName>
e quindi eseguire Update-Database
in Program Manager Console.
modelBuilder.Entity<PlasmidStockCode>(b =>
{
b.HasIndex(e => (new { e.ClientName, e.PlasmidName })).IsUnique();
});