开始探索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);
每次查询超出原始实体时,记住每个实体的所有条件并不容易。
想象一个属性链,其中我有一个产品,它有一个开始/结束日期和一个状态,它属于一个商店,它有一个带有状态的程序,并且如果它运行的类别是有效的,则它是有效的。
我开始思考必须有一种技术可以有效地处理这个问题,或者是否有节制地使用延迟加载?
任何建议表示赞赏。