0

开始探索EF4.3。

使用导航属性使事情变得非常容易,尽管我在一个领域有顾虑,我希望得到一些关于其他人如何处理这种情况的建议。

以延迟加载嵌套属性时的场景为例 - Store.Programme.ProgrammeAccountNumber。

Store 是我要查询的实体。

Program是一个实体,也是Store的一个导航属性,ProgrammeAccountNumber是Programme的一个属性。

为了得到原始实体,我写了这样的东西:

  public static IQueryable<Store> FindActive()
    {
        var r = new ReadRepo<Store>(Local.Items.Uow.Context);

        return r.Find(s => s.StoreStatusId == (int)StoreStatus.Active);
    }

但是让我们假设 Program 有它自己的状态字段:

var store = StoreBL.FindActive()
    .Where(s => s.Programme != null && s.Programme.ProgramStatusId = (int)ProgrammeStatus);

每次查询超出原始实体时,记住每个实体的所有条件并不容易。

想象一个属性链,其中我有一个产品,它有一个开始/结束日期和一个状态,它属于一个商店,它有一个带有状态的程序,并且如果它运行的类别是有效的,则它是有效的。

我开始思考必须有一种技术可以有效地处理这个问题,或者是否有节制地使用延迟加载?

任何建议表示赞赏。

4

0 回答 0