2016-08-03 104 views
0

我有我的數據庫中的以下存儲過程:ASP.NET網頁API控制器,存儲過程不返回數據

SELECT dbo.Persona.Nombre, dbo.Persona.Cedula, dbo.Prestamo.Empresa, dbo.Prestamo.Concepto, dbo.Prestamo.Monto, dbo.Prestamo.Fecha, dbo.Prestamo.PagadoATiempo 
FROM dbo.Financiera INNER JOIN 
    dbo.Prestamo ON dbo.Financiera.RNC = dbo.Prestamo.Empresa INNER JOIN 
    dbo.Persona ON dbo.Prestamo.Cliente = dbo.Persona.Cedula 
WHERE dbo.Persona.Cedula = @p1 

中,然後在我的上下文類爲:

public partial class BDWSEntities : DbContext 
{ 
    public BDWSEntities() 
     : base("name=BDWSEntities") 
    { 
    } 

    protected override void OnModelCreating(DbModelBuilder modelBuilder) 
    { 
     throw new UnintentionalCodeFirstException(); 
    } 

    public virtual DbSet<Financiera> Financieras { get; set; } 
    public virtual DbSet<Persona> Personas { get; set; } 
    public virtual DbSet<Prestamo> Prestamoes { get; set; } 

    public virtual ObjectResult<EnviarHistorial_Result> EnviarHistorial(string p1) 
    { 
     var p1Parameter = p1 != null ? 
      new ObjectParameter("p1", p1) : 
      new ObjectParameter("p1", typeof(string)); 

     return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<EnviarHistorial_Result>("EnviarHistorial", p1Parameter); 
    } 

    public virtual ObjectResult<Nullable<bool>> EnviarSalud(string p1) 
    { 
     var p1Parameter = p1 != null ? 
      new ObjectParameter("p1", p1) : 
      new ObjectParameter("p1", typeof(string)); 

     return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<Nullable<bool>>("EnviarSalud", p1Parameter); 
    } 
} 

和我使用以下控制器訪問它:

namespace Web_Services.Controllers 
{ 
    public class HistorialController : ApiController 
    { 
     private BDWSEntities db = new BDWSEntities(); 
     public IHttpActionResult GetHistorial(string Cedula) 
     { 

      var record = db.EnviarHistorial(Cedula); 
      if (record == null) 
      { 
       return NotFound(); 
      } 
      return Ok(record); 
     } 
    } 
} 

現在,在理論上,這個控制器應該返回數據,但是當通過相關的localhost/api/Historial訪問,它不返回任何數據或消息,它只是返回一個空的JSON文件。發生了什麼?

+0

「我有以下存儲過程」 在哪裏?我沒有看到它的問題。您發佈了兩次相同的查詢 – Marusyk

+0

「然後在我的上下文類」中,該代碼不是上下文的代碼。這是一個查詢! – Marusyk

+0

哎呀,我把它搞砸了。固定! –

回答

0

試試這個:

public virtual ObjectResult<EnviarHistorial_Result> EnviarHistorial(string p1) 
    { 
     var p1Parameter = p1 != null ? 
      new ObjectParameter("p1", p1) : 
      new ObjectParameter("p1", typeof(string)); 

     return this.Database.SqlQuery<EnviarHistorial_Result>("EnviarHistorial", p1); 
    } 
+0

謝謝你,謝謝你。這工作! –