Beispiel #1
0
        /// <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);
        }
Beispiel #2
0
 /// <summary>
 /// 构造函数
 /// </summary>
 private DomainModelManageService()
 {
     manager          = new DomainModelManager();
     domainModelCache = new ConcurrentDictionary <string, DomainModel>();
 }