我應該為以下格式創建一個控制器。我制作了以下資料模型和控制器,但出現錯誤“物件參考未設定為物件的實體”
我對框架不是很熟悉,最確定當前的實施有什么問題
{
"MacAddress": "30:a3:d5:a6:e4:b3",
"TotalNodes": 1,
"Report": [{
"Status": [{
"ID": 3,
"Val": 0,
"RSSI": {
"Hop1": -80,
"Hop2": -10
},
"Route": {
"Id1": 3,
"Id2": 9
}
}]
}]
}
namespace Data.Models
{
public class SensorsData
{
public string MacAddress { get; set; }
public int TotalNodes { get; set; }
public List<SensorReport> Report{ get; set; }
public class SensorReport
{
public List<Status> Status { get; set; }
}
public class Status
{
public int ID { get; set; }
public string Val { get; set; }
public Nullable<int> HealthVal { get; set; }
public List<sensorsRSSI> RSSI;
public List<sensorsRoute> Route;
}
public class sensorsRSSI
{
public Nullable<int> Hop1 { get; set; }
public Nullable<int> Hop2 { get; set; }
}
public class sensorsRoute
{
public Nullable<int> Id1 { get; set; }
public Nullable<int> Id2 { get; set; }
}
public SensorsHealthData()
{
}
}
}
控制器看起來像這樣
public IHttpActionResult Post(Data.Models.SensorsData sensorHealthData)
{
try
{
using (GSEntities dbContext = new GSEntities())
{
var device= dbContext.devices.Where(c => c.MacAddress == SensorsData.HubMacAddress).FirstOrDefault();
foreach (SensorReport sensorReport in sensorData.HealthReport)
{
foreach (Status status in sensorReport.Status)
{
SensorsReport sensorReport = GSContext.SensorsReport.Add(new SensorsReport
{
Id = device.Id ,
TotalNodes = sensorData.TotalNodes,
ID = status.ID,
Val= status.Val,
Hop1 = status.RSSI.Hop1,
Hop2 = status.RSSI.Hop2,
Id1 = status.Route.Id1,
Id2 = status.Route.Id2
});
}
}
uj5u.com熱心網友回復:
根據您的模型,故障是sensorsRSSI模型類中的定義。它不是一個串列。它必須是一個物件也sensorsRoute
必須是一個物件。
建議:如果您對框架或語言不相似,可以使用類似這樣的轉換工具將 JSON 轉換為 C# 模型類。
public class SensorData
{
public string MacAddress { get; set; }
public int TotalNodes { get; set; }
public List<Report> Report { get; set; }
}
public class Report
{
public List<Status> Status { get; set; }
}
public class sensorsRoute
{
public Nullable<int> Id1 { get; set; }
public Nullable<int> Id2 { get; set; }
}
public class sensorsRSSI
{
public Nullable<int> Hop1 { get; set; }
public Nullable<int> Hop2 { get; set; }
}
public class Status
{
public int ID { get; set; }
public int Val { get; set; }
public Nullable<int> HealthVal { get; set; }
// Here is the fault
// this property is not a list just a straight object
public sensorsRSSI RSSI { get; set; }
// And also this property must be an object.
public sensorsRoute Route { get; set; }
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/517081.html
標籤:C#实体框架
上一篇:物體框架無法添加資料
