私はまだ、複数のトランザクション タイプと支払いハンドラーに対応する多用途のトランザクション システムを備えたアプリケーションを計画する初期段階にあります。
次の基本クラスがあるとします。
public class Transaction {
public int Id { get; set; }
public TransactionTypes Type { get; set; }
public PaymentHandlers PaymentHandler { get; set; }
public decimal Amount { get; set; }
}
ここで、TransactionTypes は、トランザクションのタイプを決定する列挙型です。以下は、トランザクション タイプが製品の場合の例です。
public class ProductTransaction : Transaction {
public Address DeliveryAddress { get; set; }
}
PaymentHandlers は、トランザクションの支払いハンドラを決定する列挙型です。以下は、支払いハンドラが PayPal の場合の例です。
public class TransactionPayPal : Transaction {
public string AccountName { get; set; }
}
ただし、異なる Discriminator を持つ Transaction から継承する 2 つの異なるクラスがあるため、これが正しいかどうかはわかりません。後でデータを挿入して取得するときにこれが問題を引き起こすと想像できるので、これに対して何らかの規則があると思います。
これをどのように達成すべきかについてのアドバイスをいただければ幸いです。ありがとう