Ejemplo n.º 1
0
            public override string ToString()
            {
                StringBuilder r = new StringBuilder();

                switch (TipoUniao)
                {
                case TipoUniao.Inner:
                    r.Append(inner);
                    break;

                case TipoUniao.Left:
                    r.Append(left);
                    break;

                case TipoUniao.Right:
                    r.Append(right);
                    break;
                }


                string chave = instancia.obterTiposMapeadoChave().Keys.First();

                r.AppendFormat("{0} as {1} on ({2}.{3} = {1}.{4} {5}) ", Tabela, Apelido,
                               sqlConstrutor.apelidoPrincipal, mapear.ColunaBanco,
                               chave, CondicaoAdicional);

                return(r.ToString());
            }
Ejemplo n.º 2
0
        protected Dictionary <String, DbParameter> criarParamatros(IEntidade entidade)
        {
            Type tipo = entidade.GetType();

            Dictionary <String, DbParameter> param = new Dictionary <String, DbParameter>();
            Dictionary <String, Type>        tipos = entidade.obterTiposMapeado();

            foreach (String k in tipos.Keys)
            {
                PropertyInfo p = tipo.GetProperty(k, new Type[] { });
                if (p == null || p.GetCustomAttributes(typeof(Transiente), true).Length > 0)
                {
                    continue;
                }



                if (p.GetValue(entidade, null) == null)
                {
                    param.Add(k, ad.criaParametro(k, ConverteUtils.converteParaDbType(tipos[k]), DBNull.Value));
                }
                else if (tipos[k].IsEnum)
                {
                    param.Add(k, ad.criaParametro(k, DbType.Int32, (int)p.GetValue(entidade, null)));
                }
                else if (tipos[k].IsSubclassOf(typeof(AbstractEntidade)))
                {//Se for uma entidade: 1-obtem seu mapeamento de chaves, 2-Pega a primeira chave e passa para o mapeamento
                    IEntidade tmp = (IEntidade)p.GetValue(entidade);
                    Dictionary <string, Type> chv = tmp.obterTiposMapeadoChave();
                    String priChv = chv.Keys.First();
                    param.Add(k, ad.criaParametro(k, ConverteUtils.converteParaDbType(chv[priChv]), tmp[priChv]));
                }
                else if (tipos[k] == typeof(TimeSpan))
                {
                    TimeSpan ts = (TimeSpan)p.GetValue(entidade, null);
                    //DateTime data = new DateTime(1981, 1, 30, ts.Hours, ts.Minutes, ts.Seconds);
                    param.Add(k, ad.criaParametro(k, ConverteUtils.converteParaDbType(tipos[k]), ts));
                }
                else
                {
                    param.Add(k, ad.criaParametro(k, ConverteUtils.converteParaDbType(tipos[k]), p.GetValue(entidade, null)));
                }
            }

            return(param);
        }