我们对数据访问使用Entity Framework 4.1,并在构建对象时,我们开始向自己提问 有关应用程序与数据库的关联程度。现在,我们真的开始考虑一个项目下面是:我是否懒惰加载这些属性?
public MasterPreAward()
{
public int ID
public int MemberID
public int CycleID
public virtual Cycle
public virtual Member
public virtual Status
public virtual ICollection<DataTracking> DataTrackings
public virtual ICollection<ReviewerAssignment> Reviewers
}
的MasterPreAward是从数据库中生成的实体,具有周期的导航性质在会员,有两个集合的DataTrackings 审稿沿状态。我们想知道的是,实体框架是如何根据这些项目加载子对象并将我们在以下模型中使用的数据带回来的? 如您所见,我们传入MasterPreAward对象,然后访问基于MasterPreAward加载的儿童属性。
public ViewHeaderSummary(MasterPreAward masterPreAward)
{
MasterPreAwardId = masterPreAward.ID;
ClientId = masterPreAward.Cycle.Project.Program.ClientID;
ApplicationId = masterPreAward.MemberID;
ProgramId = masterPreAward.Cycle.Project.ProgramID;
ProjectId = masterPreAward.Cycle.ProjectID;
EventTypeId = masterPreAward.DataTrackings.FirstOrDefault(x=>x.Finished==true
&& x.EventTypeID==(int)FormEvents.Application).EventTypeID;
CycleId = masterPreAward.CycleID;
FormId = masterPreAward.Cycle.CycleForms.FirstOrDefault().FormID;
}
,我们想知道什么,这是为了访问这些属性的最好办法,还是应该真正思考以不同的方式做这方面的工作?
感谢您的代码示例。当我们构建模型或存储库时,这给了我们更多的想法。 – Chris