1

我有3个实体。实体传感器,实体tanaman和实体tanamanhassensor。 我想从api tanamanhassensor使用json jquery制作图形。如何显示图表?如果用我的JSON的API http://xxxxx/api/tanaman_has_sensor没有找到如何获得具有一对多关系的Web API

我的实体是这样的:

public partial class Tanaman_has_Sensor 
{ 
    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")] 
    public Tanaman_has_Sensor() 
    { 
     this.Tanaman_has_Sensor_has_Jadwal = new HashSet<Tanaman_has_Sensor_has_Jadwal>(); 
    } 

    public int Tanaman_IdTanaman { get; set; } 
    public int Sensor_IdSensor { get; set; } 
    public double NilaiSensor { get; set; } 
    public System.DateTime WaktuSensor { get; set; } 
    public string Lokasi { get; set; } 

    public virtual Sensor Sensor { get; set; } 
    public virtual Tanaman Tanaman { get; set; } 
    public virtual ICollection<Tanaman_has_Sensor_has_Jadwal> Tanaman_has_Sensor_has_Jadwal { get; set; } 
} 

这是我的控制器

public class TanamanhasSensorController : ApiController 
{ 
    private SmartGreenHouseEntities db = new SmartGreenHouseEntities(); 

    // GET: api/TanamanhasSensor 
    public IQueryable<Tanaman_has_Sensor> GetTanaman_has_Sensor() 
    { 
     return db.Tanaman_has_Sensor; 
    } 

    // GET: api/TanamanhasSensor/5 
    [ResponseType(typeof(Tanaman_has_Sensor))] 
    public async Task<IHttpActionResult> GetTanaman_has_Sensor(int id) 
    { 
     Tanaman_has_Sensor tanaman_has_Sensor = await db.Tanaman_has_Sensor.FindAsync(id); 
     if (tanaman_has_Sensor == null) 
     { 
      return NotFound(); 
     } 

     return Ok(tanaman_has_Sensor); 
    } 
} 

应用JSON

[{ 
"Tanaman_IdTanaman": 1, 
"Sensor_IdSensor": 2, 
"NilaiSensor": 3.1, 
"WaktuSensor": "2016-11-19T07:38:42.519263+07:00", 
"Lokasi": "sample string 5", 
"Sensor": { 
    "$id": "1", 
    "IDSensor": 1, 
    "NamaSensor": "sample string 2", 
    "Tanaman_has_Sensor": [ 
    { 
     "Tanaman_IdTanaman": 1, 
     "Sensor_IdSensor": 2, 
     "NilaiSensor": 3.1, 
     "WaktuSensor": "2016-11-19T07:38:42.519263+07:00", 
     "Lokasi": "sample string 5", 
     "Sensor": { 
     "$ref": "1" 
     }] 

我的JSON

$.ajax({ 
      type: 'GET', 
      url: "http://xxxxx/api/tanaman_has_sensor", 
      dataType: 'json', 
      async: false, 
      contentType: "application/json; charset=utf-8", 
      data: dd, 
+0

通过**许多演示了这许多**是什么意思 – Aravind

+0

@Aravind对不起,我的意思是一对多,我已经改变了标题 – redim

+0

的信息是不够的实际! !请更具体一些。 – Aravind

回答

0

基于约定假设默认路由的Web API 2

// Convention-based routing. 
config.Routes.MapHttpRoute(
    name: "DefaultApi", 
    routeTemplate: "api/{controller}/{id}", 
    defaults: new { id = RouteParameter.Optional } 
); 

你应该打电话

url: "http://xxxxx/api/TanamanhasSensor 

按照惯例路由表匹配控制器名减去Convention

从而TanamanhasSensorController会map to TanamanhasSensor

即使控制器在评论

public class TanamanhasSensorController : ApiController { 
    private SmartGreenHouseEntities db = new SmartGreenHouseEntities(); 

    // GET: api/TanamanhasSensor 
    [HttpGet] 
    public IQueryable<Tanaman_has_Sensor> GetTanaman_has_Sensor() { 
     return db.Tanaman_has_Sensor; 
    } 

    // GET: api/TanamanhasSensor/5 
    [HttpGet] 
    [ResponseType(typeof(Tanaman_has_Sensor))] 
    public async Task<IHttpActionResult> GetTanaman_has_Sensor(int id) { 
     Tanaman_has_Sensor tanaman_has_Sensor = await db.Tanaman_has_Sensor.FindAsync(id); 
     if (tanaman_has_Sensor == null) { 
      return NotFound(); 
     } 

     return Ok(tanaman_has_Sensor); 
    } 
} 
+0

谢谢nkosi,我错误的调用网址 – redim

相关问题