Exemple #1
0
        public SqlQuery LeftJoin(string toTable, IAlias alias, ICriteria onCriteria)
        {
            if (alias == null)
            {
                throw new ArgumentNullException("alias");
            }

            if (string.IsNullOrEmpty(toTable))
            {
                throw new ArgumentNullException("alias.table");
            }

            var join = new LeftJoin(toTable, alias.Name, onCriteria);

            Join(join);

            var haveJoins = alias as IHaveJoins;

            if (haveJoins != null)
            {
                AliasWithJoins[alias.Name] = haveJoins;
            }

            return(this);
        }
Exemple #2
0
        public SqlQuery LeftJoin(IAlias alias, ICriteria onCriteria)
        {
            if (alias == null)
                throw new ArgumentNullException("alias");

            if (string.IsNullOrEmpty(alias.Table))
                throw new ArgumentNullException("alias.table");

            var join = new LeftJoin(alias.Table, alias.Name, onCriteria);

            Join(join);

            return this;
        }
Exemple #3
0
        public SqlQuery LeftJoin(IAlias alias, ICriteria onCriteria)
        {
            if (alias == null)
            {
                throw new ArgumentNullException("alias");
            }

            if (string.IsNullOrEmpty(alias.Table))
            {
                throw new ArgumentNullException("alias.table");
            }

            var join = new LeftJoin(alias.Table, alias.Name, onCriteria);

            Join(join);

            return(this);
        }
Exemple #4
0
        public SqlQuery LeftJoin(string toTable, IAlias alias, ICriteria onCriteria)
        {
            if (alias == null)
                throw new ArgumentNullException("alias");

            if (string.IsNullOrEmpty(toTable))
                throw new ArgumentNullException("alias.table");

            var join = new LeftJoin(toTable, alias.Name, onCriteria);

            Join(join);

            var haveJoins = alias as IHaveJoins;
            if (haveJoins != null)
                AliasWithJoins[alias.Name] = haveJoins;

            return this;
        }
Exemple #5
0
        public LeftJoin ForeignJoin(Int32?foreignIndex = null)
        {
            if (ForeignTable.IsNullOrEmpty())
            {
                throw new ArgumentNullException("ForeignTable");
            }

            string foreignJoin;

            if (foreignIndex == null)
            {
                foreignJoin = Name;
                if (foreignJoin.EndsWith("Id", StringComparison.Ordinal))
                {
                    foreignJoin = foreignJoin.Substring(0, foreignJoin.Length - 2);
                }
                else if (foreignJoin.EndsWith("_ID", StringComparison.OrdinalIgnoreCase))
                {
                    foreignJoin = foreignJoin.Substring(0, foreignJoin.Length - 3);
                }

                foreignJoin = "j" + foreignJoin;
            }
            else
            {
                foreignJoin = foreignIndex.Value.TableAlias();
            }

            var joinKeyField   = ForeignField ?? Name;
            var sourceAlias    = "T0";
            var sourceKeyField = Name;

            var join = new LeftJoin(this.Fields.Joins, ForeignTable, foreignJoin,
                                    new Criteria(foreignJoin, joinKeyField) == new Criteria(sourceAlias, sourceKeyField));

            this.ForeignJoinAlias = join;
            return(join);
        }
Exemple #6
0
        public LeftJoin ForeignJoin(Int32? foreignIndex = null)
        {
            if (ForeignTable.IsNullOrEmpty())
                throw new ArgumentNullException("ForeignTable");
            
            string foreignJoin;
            if (foreignIndex == null)
            {
                foreignJoin = Name;
                if (foreignJoin.EndsWith("Id", StringComparison.Ordinal))
                    foreignJoin = foreignJoin.Substring(0, foreignJoin.Length - 2);
                else if (foreignJoin.EndsWith("_ID", StringComparison.OrdinalIgnoreCase))
                    foreignJoin = foreignJoin.Substring(0, foreignJoin.Length - 3);

                foreignJoin = "j" + foreignJoin;
            }
            else
            {
                foreignJoin = foreignIndex.Value.TableAlias();
            }

            var joinKeyField = ForeignField ?? Name;
            var sourceAlias = "T0";
            var sourceKeyField = Name;

            var join = new LeftJoin(this.Fields.Joins, ForeignTable, foreignJoin,
                new Criteria(foreignJoin, joinKeyField) == new Criteria(sourceAlias, sourceKeyField));

            this.ForeignJoinAlias = join;
            return join;
        }