sql >> Database >  >> RDS >> Sqlserver

Berekende kolom in EF Code First

U kunt berekende kolommen maken in uw databasetabellen. In het EF-model annoteer je gewoon de bijbehorende eigenschappen met de DatabaseGenerated kenmerk:

[DatabaseGenerated(DatabaseGeneratedOption.Computed)]
public double Summ { get; private set; } 

Of met vloeiende mapping:

modelBuilder.Entity<Income>().Property(t => t.Summ)
    .HasDatabaseGeneratedOption(DatabaseGeneratedOption.Computed)

Zoals voorgesteld door Matija Grcic en in een opmerking, is het een goed idee om de eigenschap private set te maken , omdat u het waarschijnlijk nooit in de toepassingscode wilt instellen. Entity Framework heeft geen problemen met private setters.

Opmerking: Voor EF .NET Core moet u ValueGeneratedOnAddOrUpdate gebruiken omdat HasDatabaseGeneratedOption niet bestaat, bijvoorbeeld:

modelBuilder.Entity<Income>().Property(t => t.Summ)
    .ValueGeneratedOnAddOrUpdate()


  1. Hoe privileges te beheren met rollen in MySQL

  2. Voer deze bedrijfsurenquery uit in PostgreSQL

  3. Hoe input van de gebruiker te krijgen tijdens runtime

  4. SQL Server Pre-Login Handshake-bevestigingsfout