コード例 #1
0
        public DictionaryFieldsSQLBuilder(List<IUserField> userFields, Aspect.Domain.CommonDomain provider, Guid topNode)
            : base(userFields)
        {
            IEnumerable<Aspect.Domain.TreeViewResult> tableList = this.GetDistinctDictionaryTablesTree(userFields, provider);

            List<Aspect.Domain.TreeViewResult> childs = provider.GetDictionaryTreeChilds(topNode).ToList();

            foreach (Aspect.Domain.TreeViewResult node in tableList)
            {
                Aspect.Domain.DictionaryTree item = provider.DictionaryTrees.Single(d => d.ID == node.ID);

                if (childs.Contains(node, Aspect.Model.Query.DictionaryTreeEqualityComparer.Instance))
                {
                    if (item.ParentID == null) throw new ArgumentOutOfRangeException(string.Format("DictionaryTreeID {0}", item.ID));
                    Join.AppendFormat(propertyJoinTemplate, item.Dictionary.TableName, item.Alias, item.DictionaryTree1.Alias, item.FK, item.PK);
                }
            }
        }