sql >> Database teknologi >  >> RDS >> Sqlserver

Beregnet kolonne i EF-kode først

Du kan oprette beregnede kolonner i dine databasetabeller. I EF-modellen anmærker du blot de tilsvarende egenskaber med DatabaseGenerated attribut:

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

Eller med flydende kortlægning:

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

Som foreslået af Matija Grcic og i en kommentar, er det en god idé at gøre ejendommen til private set , fordi du sandsynligvis aldrig vil indstille det i applikationskoden. Entity Framework har ingen problemer med private opstillere.

Bemærk: For EF .NET Core skal du bruge ValueGeneratedOnAddOrUpdate fordi HasDatabaseGeneratedOption ikke eksisterer, f.eks.:

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


  1. Værktøjer til at generere databasetabeller diagram med PostgreSQL?

  2. Hvorfor opretter postgres ikke databasen?

  3. Beregning af beholdningsgennemsnitlige omkostninger i SQL

  4. Hvordan returnerer man et resultatsæt/markør fra en anonym Oracle PL/SQL-blok, der udfører Dynamic SQL?