Make queries using the entity framework

3

Within my repository EF I have the methods, in method ExcluirRegistro I'm passing a StatusRegistro to the database which indicates that this record is being deleted, so in my methods ListarPorId and ListarTodos I'd like to only the records with STATUS other than 'S'. How could I make these queries?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Projeto.Financeiro.Dominio;
using Projeto.Financeiro.Dominio.contrato;

namespace Projeto.Financeiro.RepositorioEF
{
    public class EmpresaRepositorioEF : IRepositorio<tb_empresa>
    {

        private readonly Contexto contexto;

        public EmpresaRepositorioEF()
        {
            contexto = new Contexto();
        }

        //salvar ou altera o registro
        public void SalvarRegistro(tb_empresa entidade) 
        {
            if (entidade.IDEMPRESA > 0)
            {
                var empresaAlterar = contexto.Empresa.First(x => x.IDEMPRESA == entidade.IDEMPRESA);
                empresaAlterar.RAZAO_SOCIAL = entidade.RAZAO_SOCIAL;
                empresaAlterar.ENDERECO = entidade.ENDERECO;
                empresaAlterar.BAIRRO = entidade.BAIRRO;
                empresaAlterar.CIDADE = entidade.CIDADE;
                empresaAlterar.IMAGEM_LOGO = entidade.IMAGEM_LOGO;
                empresaAlterar.STATUS = entidade.STATUS;

                //implementar IEntidade nos Models para salvar as datas DATA_ALTERACAO e DATA_INCLUSAO
            }
            else
            {
                contexto.Empresa.Add(entidade);
            }

            contexto.SaveChanges();
        }

        //excluir o registro
        public void ExcluirRegistro(tb_empresa entidade)
        {
            //não vou excluir o registro, apenas trocar o status para 'S'
            char StatusRegistro = 'S';
            var empresaExcluir = contexto.Empresa.First(x => x.IDEMPRESA == entidade.IDEMPRESA);
            empresaExcluir.STATUS = StatusRegistro;
            //contexto.Set<tb_empresa>().Remove(empresaExcluir);
            contexto.SaveChanges();
        }

        //listar por id
        public tb_empresa ListarPorId(string id)
        {
            int idInt;
            Int32.TryParse(id, out idInt);
            var Consulta = contexto.Empresa.First(x => x.IDEMPRESA == idInt);
            return Consulta;
        }

        //listar todos
        public IEnumerable<tb_empresa> ListarTodos()
        {
            return contexto.Empresa;
        }
    }
}
    
asked by anonymous 17.09.2015 / 20:33

1 answer

3

It would look something like this:

    public tb_empresa ListarPorId(string id)
    {
        int idInt;
        Int32.TryParse(id, out idInt);
        var Consulta = contexto.Empresa.First(x => x.IDEMPRESA == idInt && x.STATUS != 'S');
        return Consulta;
    }

    //listar todos
    public IEnumerable<tb_empresa> ListarTodos()
    {
        return contexto.Empresa.Where(e => e.Status != 'S');
    }
    
17.09.2015 / 20:37