sql >> データベース >  >> RDS >> Sqlserver

EFコードファーストの計算列

    データベーステーブルに計算列を作成できます。 EFモデルでは、対応するプロパティにDatabaseGeneratedで注釈を付けるだけです。 属性:

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

    または流暢なマッピング:

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

    Matija Grcicとコメントで示唆されているように、プロパティをprivate setにすることをお勧めします。 、おそらくアプリケーションコードで設定したくないからです。 EntityFrameworkはプライベートセッターに問題はありません。

    注: EF .NET Coreの場合、 ValueGeneratedOnAddOrUpdateを使用する必要があります HasDatabaseGeneratedOptionが存在しないため、例:

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


    1. 日常的なコンテンツバックアップの推奨事項

    2. 11基本的な例を含む一般的なSQLステートメント

    3. JDBCでストアドプロシージャを呼び出す方法

    4. postgresqlのIF-THEN-ELSEステートメント