Example #1
0
        internal void AddInnerRelation(Type inner, string condition, IEnumerable <Attribute.FieldAttribute> resultFields, bool useAliasesName = true, JoinType joinType = JoinType.Left)
        {
            dBExtend.CheckTableCreated(inner);
            var    table     = TypeCache.GetTable(inner);
            var    tableName = table.TableName;
            string aliasName = GetPrefix(inner);

            tableName = string.Format("{0} {1} ", tableName, aliasName.Substring(0, aliasName.Length - 1));
            string str = string.Format(" {0} join {1} on {2}", joinType, tableName + " " + dBAdapter.GetWithNolockFormat(),
                                       condition);

            if (!Relations.ContainsKey(inner))
            {
                Relations.Add(inner, str);
            }
            foreach (var f in resultFields)
            {
                f.SetFieldQueryScript(aliasName, true, useAliasesName);
                FieldMapping[f.MappingName] = f.AliasesName;
                QueryFields.Add(f);
            }
        }