我們對數據訪問使用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