sql >> Databasteknik >  >> RDS >> Sqlserver

Beräknad kolumn i EF Code First

Du kan skapa beräknade kolumner i dina databastabeller. I EF-modellen kommenterar du bara motsvarande egenskaper med DatabaseGenerated attribut:

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

Eller med flytande kartläggning:

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

Som föreslagits av Matija Grcic och i en kommentar är det en bra idé att göra fastigheten private set , eftersom du förmodligen aldrig skulle vilja ställa in det i applikationskoden. Entity Framework har inga problem med privata sättare.

Obs! För EF .NET Core bör du använda ValueGeneratedOnAddOrUpdate eftersom HasDatabaseGeneratedOption inte existerar, t.ex.:

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


  1. WSJDBCConnection omsluter inte objekt av typen Oracle jdbc Connection

  2. Hur man spelar PLAY_SOUND i Oracle Forms

  3. Oracle-aggregat för att sammanfoga strängar med kommatecken och för att skriva anpassade aggregat

  4. MySql Count kan inte visa 0-värden