/// <summary> /// 循环构造领域模型 /// </summary> /// <param name="domainModelID">领域模型ID</param> /// <returns>领域模型</returns> private DomainModel GetDomainModelDetail(string domainModelID) { var domainModel = new DomainModelManager().GetDomainModel(domainModelID); foreach (var modelObject in domainModel.DomainObjects) { //DataObject if (string.IsNullOrEmpty(modelObject.DataObjectID)) { throw new Exception("Domain Object cannot find associate DataObject: " + modelObject.ID); } modelObject.DataObject = DataObjectManageService.GetInstance().GetDataObject(modelObject.DataObjectID); //Association if (modelObject.Associations.Count > 0) { foreach (var asso in modelObject.Associations) { if (asso.AssociateType == AssociateType.InnerJoin) { asso.AssoDomaiModel = domainModel; asso.AssoDomainObject = domainModel.DomainObjects.FirstOrDefault(i => i.ID == asso.AssoDomainObjectID); } else if (asso.AssociateType == AssociateType.OuterLeftJoin) { asso.AssoDomaiModel = GetDomainModel(asso.AssoDomainModelID); asso.AssoDomainObject = asso.AssoDomaiModel.DomainObjects.FirstOrDefault(i => i.ID == asso.AssoDomainObjectID); } } } } return(domainModel); }
/// <summary> /// 构造函数 /// </summary> private DomainModelManageService() { manager = new DomainModelManager(); domainModelCache = new ConcurrentDictionary <string, DomainModel>(); }