我有一个名为Dossier的类,它是我的基类,还有一个名为PensioenDossier和AovDossier的类,它继承了Dossier。
public partial class Dossier
{
public int ID { get; set; }
public int ProductID { get; set; }
public string Nummer { get; set; }
}
public partial class PensioenDossier : Dossier
{
public decimal Premie { get; set; }
public decimal? PartnerPensioen { get; set; }
}
public partial class AovDossier : Dossier
{
public decimal VerzekerdKapitaal { get; set; }
public decimal? MaandPremie { get; set; }
}
现在我有一个选择产品(Pensioen / AOV)的过程,并希望根据所选产品进行过滤。
,我得到了所有的档案Context.Dossiers
然后我在ProductID上过滤。如果它的Pensioen我想过滤例如" Premie"如果它是AOV,那么我想过滤" MaandPremie"。但是因为我有Context.Dossiers,我想知道是否可以过滤派生类属性?
答案 0 :(得分:1)
取决于时间关键时刻,这是一种方式;
var allDossiers = Context.Dossiers.AsQueryable();
var filteredPensioenDossiers = allDossiers.OfType<PensioenDossier>().Where(d => d.Premie > 1000);
var filteredAovDossiers = allDossiers.OfType<AovDossier>().Where(d => d.MaandPremie.HasValue);
var allFilteredDossiers = (filteredPensioenDossers as Dossier).Concat(filteredAovDossiers as Dossier);