Example #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);
        }
        /// <summary>
        /// 获取数据对象管理服务实例
        /// </summary>
        /// <returns>数据对象管理服务实例</returns>
        public static DataObjectManageService GetInstance()
        {
            if (instance == null)
            {
                lock (syncObject)
                {
                    if (instance == null)
                    {
                        instance = new DataObjectManageService();
                    }
                }
            }

            return(instance);
        }