【发布时间】:2016-10-31 07:59:07
【问题描述】:
我不太确定如何正确解决这个问题。
我有一个类Appointment 和一个类AppointmentSeries 继承自Appointment。
我的数据库是使用 TPH 代码优先设置的。
现在,当我获取数据库时,我想获取类型为 Appointment 的所有行,而不是 AppointmentSeries。
我尝试使用OfType<Appointment>(),但这也得到了AppointmentSeries。
我读到我必须使用抽象类来获得正确的行为,但我不想实现抽象类,所以我必须在 Appointment 和 AppointmentSeries 中实现相同的属性。还是我必须这样做?
我发现的另一个解决方案是将.where(a => !(a is AppointmentSeries)) 添加到每个查询中。但这很难看,我得到了整个数据库,然后排除了一些行。
有没有更好的方法来只获取约会或构建我的课程,以便我可以使用OfType<Appointments>()?
一切顺利
甘蔗
【问题讨论】:
-
“想要得到所有……约会,没有 AppointmentSeries”意味着他们一开始就不是继承的好人选。目前,您的 AppointmentSeries 是一个约会。
标签: c# entity-framework inheritance ef-code-first table-per-hierarchy