db4o Developer Community

db4o open source object database, native to Java and .NET
Welcome to db4o Developer Community Sign in | Join
in Search
More Search Options

Native Queries

Last post 08-07-2008, 05:32 PM by capetonis. 0 replies.
Sort Posts: Previous Next
  •  08-07-2008, 05:32 PM 50559

    Native Queries

    Olá!

    Tenho uma dúvida que tenho certeza que muitos ainda vão terão (se já não tiveram) em relação a busca dinâmica. Por ex:

    Em um formulário com alguns campos, por exemplo, Nome, Cidade, uma combo de Departamentos, e uma de Cargos, ambas populadas por seus respectivos objetos, onde o usuário fará uma busca de que se não preencher nenhum campo e nem selecionar nada nas combos, a consulta deverá retornar todos os objetos encontrados. O problema é na comparação dos objetos Departamento e Cargos.

    Estou fazendo assim, mas o resultado não é satisfatório:

            public Collection<clsUsuarios> listarUsuarios(String nome
                                                                                string cidade,
                                                                                clsDepartamento objDepto,
                                                                                clsCargo objCargo) {
                db = ServidorSingleton.obterServidor().OpenClient();
                return new Collection<clsUsuarios>(db.Query<clsUsuarios>(delegate(clsUsuarios objUsuario)
                {
                    return objUsuario.Nome.StartsWith(nome)
                        && objUsuario.Cidade.StartsWith(cidade)

                         //Nestes casos abaixo, se não for selecionado um depto e um cargo na combo, não retorna nada

                         //A minha necessidade é que se não for selecionado nada, retorne apenas com as condições de cima
                        && objUsuario.Departamento.Codigo == objDepto.Codigo
                        && objUsuario.Cargo.Codigo == objCargo.Codigo;
                           
                }));
            }

    Não sei se deu para entender...

    Teóricamente, bastaria um if antes das comparações com os objetos, mas a condição "&&" não permite colocar no meio. Gostaria de uma solução "elegante"  para esse dilema.

    Grato pela atenção.

     

    Filed under: , , ,
View as RSS news feed in XML