我在基类中有一个 WhereFilter 属性,如下所示:
public virtual Expression<Func<CustomerCustomerType, bool>> WhereFilter
{
get { return null; }
}
当它被覆盖时,我想返回其他内容而不是 null 以便我可以使用谓词构建器扩展 And (来自LinqKit)所以我可以编写如下代码:
public override Expression<Func<CustomerCustomerType, bool>> WhereFilter
{
get { return base.WhereFilter.And(x => x.CustomerID == 1); }
}
但这会产生错误,因为 WhereFilter 为空(对象引用未设置为对象的实例)。
目前我正在写作:
public override Expression<Func<CustomerCustomerType, bool>> WhereFilter
{
get { return x => x.CustomerID == 1; }
}
因此,当有另一个子类覆盖它时,基类属性将丢失。
有什么办法可以解决这个问题?在 sql 中我所做的是使用 1=1 的虚拟对象,这可以在 linq 中类似地完成吗?