我使用EF TPH(每个层次结构的表格)来建模包含3种不同付款类型的支付系统。有一些明显的常见字段,如Id和TimeStamp,然后是类型特定字段。
我遇到过用户可能想要从一种付款方式更改为另一种付款方式的情况。据我所知,EF不支持更改TPH配置中的类型。我看到这个托管的唯一方法是通过执行SQL来手动更改类型,然后将实体重新加载为新类型 - 这感觉不对。
我想知道我可以做些什么来改进我的模型,以便我可以在.NET和EF的范围内切换支付类型。
有人有任何建议吗?
当前型号的简化版本:
public abstract class PaymentConfiguration {
public int Id { get; set; }
}
public class TypeAPaymentConfiguration : PaymentConfiguration {
public int ABC { get; set; }
}
public class TypeBPaymentConfiguration : PaymentConfiguration {
public int DEF { get; set; }
}
public class TypeCPaymentConfiguration : PaymentConfiguration {
public int GHI { get; set; }
}