/ / Como chamar o procedimento armazenado do linq para entidades e obter o resultado no objeto - entidade-estrutura-4, linq-para-entidades

Como chamar o procedimento armazenado do linq para entidades e obter o resultado em object - entity - framework - 4, linq - to - entities

eu tenho um procedimento armazenado, que retorna stringvalor. agora eu tenho que chamar este procedimento armazenado de linq para consulta de entidade e armazenar seu resultado em propriedade string do meu tipo complexo. mas recebo o seguinte erro. "não pode converter implicitamente o tipo de resultado em string". minha consulta tem abaixo:

using (NeoSoftWindowApp_dbEntities objDatabase = new NeoSoftWindowApp_dbEntities())
{
ObjectParameter address = new ObjectParameter("Address", typeof(string));
return (from tbl in objDatabase.COMPs
select new CompanyReport_ComplexType
{

Address=objDatabase.ReturnAddressDetailForCompany(tbl.COMP_ADD1,tbl.COMP_ADD2,
tbl.COMP_ADD3, address),
City = tbl.COMP_CITY,
CompanyCode = tbl.COMP_NO,
CompanyName = tbl.COMP_NAME

}).ToList();
}

no código acima ReturnAddressDetailForCompany () é meu procedimento armazenado que retorna combinar todos os 3 valores de endereço. mas recebo um erro em c

Respostas:

0 para resposta № 1

Você não pode chamar o procedimento armazenado na consulta Linq para entidade porque o procedimento armazenado não pode ser composto (ele não pode ser usado dentro da instrução SQL select). Você deve usar isto:

 ObjectParameter address = new ObjectParameter("Address", typeof(string));
return (from tbl in objDatabase.COMPs.ToList() // Here you change it to Linq-to-Objects
select new CompanyReport_ComplexType
{

Address=objDatabase.ReturnAddressDetailForCompany(tbl.COMP_ADD1,tbl.COMP_ADD2,
tbl.COMP_ADD3, address).FirstOrDefault(), // Here you must iterate result set from your SP
City = tbl.COMP_CITY,
CompanyCode = tbl.COMP_NO,
CompanyName = tbl.COMP_NAME

}).ToList();

mas ele chamará o procedimento armazenado para cada registro em seu conjunto de resultados (= fará uma viagem de ida e volta adicional ao banco de dados para cada registro).