实体框架代码 - 首次延迟加载导航属性

时间:2016-11-29 21:32:59

标签: c# entity-framework

我有一个实体框架代码优先项目,我的对象有一个:

public virtual List<Transaction> Transactions { get; private set; }

它当然会是懒惰的,这就是我想要的。现在,在同一个对象上,我想介绍一个'便利属性',它为我做了一些过滤:

public virtual List<Transaction> EnabledTransactions
{
    get
    {
        // TODO: .AsQueryable<Transaction>(); ?
        return this.Transactions.Where(t => !t.Disabled).ToList();
    }
}

问题:

  • 此新属性是否必须为virtual?如果它不是virtual,.NET是否会尝试加载它,从而否定延迟加载?
  • 由于它们都不是IQueryable(我知道我们不能将它作为导航属性),这是否意味着任何正在执行account.Transactions.Where(t => t.Date <= someDate)的人都会强制完全加载整个集合,而不是只获得满足谓词的项目?

0 个答案:

没有答案