Bạn có thể tạo các cột được tính toán trong các bảng cơ sở dữ liệu của mình. Trong mô hình EF, bạn chỉ cần chú thích các thuộc tính tương ứng với DatabaseGenerated
thuộc tính:
[DatabaseGenerated(DatabaseGeneratedOption.Computed)]
public double Summ { get; private set; }
Hoặc với lập bản đồ thông thạo:
modelBuilder.Entity<Income>().Property(t => t.Summ)
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.Computed)
Theo đề xuất của Matija Grcic và trong một nhận xét, bạn nên đặt thuộc tính private set
, bởi vì bạn có thể không bao giờ muốn đặt nó trong mã ứng dụng. Entity Framework không có vấn đề gì với bộ thiết lập riêng.
Lưu ý: Đối với EF .NET Core, bạn nên sử dụng ValueGeneratedOnAddOrUpdate bởi vì HasDatabaseGeneratedOption không tồn tại, ví dụ:
modelBuilder.Entity<Income>().Property(t => t.Summ)
.ValueGeneratedOnAddOrUpdate()