/// <summary> /// 执行懒加载操作。 /// </summary> /// <param name="listProperty">The list property.</param> /// <returns></returns> private EntityList LoadLazyList(IListProperty listProperty) { EntityList data = null; if (this.FieldExists(listProperty)) { data = this.GetProperty(listProperty) as EntityList; if (data != null) { return(data); } } if (this.IsNew) { var listRepository = RepositoryFactoryHost.Factory.FindByEntity(listProperty.ListEntityType); data = listRepository.NewList(); } else { var meta = listProperty.GetMeta(this) as IListPropertyMetadata; var dataProvider = meta.DataProvider; if (dataProvider != null) { data = dataProvider(this); } else { var listRepository = RepositoryFactoryHost.Factory.FindByEntity(listProperty.ListEntityType) as IRepositoryInternal; data = listRepository.GetLazyListByParent(this); data.SetParentEntity(this); } } this.LoadProperty(listProperty, data); return(data); }