public static ClasseModeloDAO <T> Create(ICustomPrincipal User)
        {
            if (User.IdEmpresa == 0)
            {
                throw new Exception("Estabelecimento sem empresa. " + Environment.StackTrace);
            }

            ClasseModeloDAO <T> inst = null;

            //if (typeof(T) is IEstabelecimento)
            if (typeof(T).IsSubclassOf(TypeClasseModelEstab))
            {
                inst = new ClasseModeloDAO <T>()
                {
                    Empresa = User.IdEmpresa, Estabelecimento = User.IdEstab
                };
                inst.FiltroEstab = Expression.Eq("Estabelecimento.Id", inst.Estabelecimento);
            }
            else
            {
                inst = new ClasseModeloDAO <T>()
                {
                    Empresa = User.IdEmpresa
                };
            }

            inst.FiltroEmpresa = Expression.Eq("Empresa.Id", inst.Empresa);

            return(inst);
        }
        public static ClasseModeloDAO <T> Create(int codEmpresa)
        {
            var inst = new ClasseModeloDAO <T>()
            {
                Empresa = codEmpresa, Estabelecimento = 0
            };

            inst.FiltroEmpresa = Expression.Eq("Empresa.Id", inst.Empresa);

            return(inst);
        }
        public static ClasseModeloDAO <T> Create(CustomClasseModelo User)
        {
            if (User.IdEmpresa == 0)
            {
                throw new Exception("Estabelecimento sem empresa. " + Environment.StackTrace);
            }

            var inst = new ClasseModeloDAO <T>()
            {
                Empresa = User.IdEmpresa, Estabelecimento = User.IdEstab
            };

            inst.FiltroEmpresa = Expression.Eq("Empresa.Id", inst.Empresa);


            if (typeof(T) is IEstabelecimento)
            {
                inst.FiltroEstab = Expression.Eq("Estabelecimento.Id", inst.Estabelecimento);
            }

            return(inst);
        }