public Application_StateProvinceQuery <Application_CityQuery <K, T>, T> JoinApplication_StateProvince(JoinType joinType = JoinType.Inner, bool preloadEntities = false)
        {
            var joinedQuery = new Application_StateProvinceQuery <Application_CityQuery <K, T>, T>(Db);

            return(Join(joinedQuery, string.Concat(joinType.GetJoinString(), " [Application].[StateProvinces] AS {1} {0} ON", "{2}.[StateProvinceID] = {1}.[StateProvinceID]"), o => ((Application_City)o)?.Application_StateProvince, (e, fv, ppe) =>
            {
                var child = (Application_StateProvince)ppe(QueryHelpers.Fill <Application_StateProvince>(null, fv));
                if (e != null)
                {
                    ((Application_City)e).Application_StateProvince = child;
                }

                return child;
            }

                        , typeof(Application_StateProvince), preloadEntities));
        }
        public Application_StateProvinceQuery <Application_CountryQuery <K, T>, T> JoinApplication_StateProvinces(JoinType joinType = JoinType.Inner, bool attach = false)
        {
            var joinedQuery = new Application_StateProvinceQuery <Application_CountryQuery <K, T>, T>(Db);

            return(JoinSet(() => new Application_StateProvinceTableQuery <Application_StateProvince>(Db), joinedQuery, string.Concat(joinType.GetJoinString(), " [Application].[StateProvinces] AS {1} {0} ON", "{2}.[CountryID] = {1}.[CountryID]"), (p, ids) => ((Application_StateProvinceWrapper)p).Id.In(ids.Select(id => (System.Int32)id)), (o, v) => ((Application_Country)o).Application_StateProvinces.Attach(v.Cast <Application_StateProvince>()), p => (long)((Application_StateProvince)p).CountryID, attach));
        }