データベーステーブルに計算列を作成できます。 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()