2
respostas

Isolando variavel capturada pelo banco

        public ActionResult Register(int? idcli)
        {
            var cliente = db.Cliente.Where(i => i.ID == idcli);
            string NomeCliente = ?????

            return View();
        }

Na Action acima eu recebo um ID. Na sequencia eu consulto o banco procurando as informações referentes a este cliente definido na ID. Até aí Ok, ele retorna exatamente o cliente consultado e armazena na var cliente. Eu quero separar o nome deste cliente. Não consigo acessar as propriedades de minha "var cliente" onde estão as informações que preciso. Como faço?

2 respostas

Consegui através de um foreach, mas não sei se é a alternativa mais correta neste caso que sempre retornará apenas 1 registro.

                var cliente = db.Cliente.Where(i => i.ID == idcli);

                foreach (var r in cliente)
                {
                    ViewBag.ClienteRS = r.CLI_RSOCIAL;
                    ViewBag.ClienteID = r.CLI_ID;
                    ViewBag.ClienteCEP = r.CLI_CEP;

                }
                return View();

Oi Rafael, tudo bom?

Acredito que a query:

            var cliente = db.Cliente.Where(i => i.ID == idcli);

Não identifique que um valor apenas é retornado e te devolva um array com um valor apenas.

Seu for vai funcionar porém acessar a primeira posição do array também deveria. Algo como:

            var cliente = db.Cliente.Where(i => i.ID == idcli)[0];

Nesse cenário não precisamos do for.

Abraço!