Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Obliczona kolumna w EF Code First

W tabelach bazy danych można tworzyć kolumny wyliczane. W modelu EF po prostu adnotuj odpowiednie właściwości za pomocą DatabaseGenerated atrybut:

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

Lub z płynnym mapowaniem:

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

Jak sugeruje Matija Grcic i w komentarzu, dobrym pomysłem jest ustawienie właściwości private set , ponieważ prawdopodobnie nigdy nie chciałbyś go ustawiać w kodzie aplikacji. Entity Framework nie ma problemów z prywatnymi ustawiaczami.

Uwaga: W przypadku EF .NET Core należy użyć ValueGeneratedOnAddOrUpdate ponieważ HasDatabaseGeneratedOption nie istnieje, np.:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server:Jak używać UNION z dwoma zapytaniami, które OBA mają klauzulę WHERE?

  2. Policz na podstawie warunku w SQL Server

  3. SQL DELETE z INNER JOIN

  4. Dostęp Androida do zdalnej bazy danych SQL

  5. Usuń dane za pomocą funkcji wartościującej tabelę w SQL Server