提交 849ac9cb 编写于 作者: 麦壳饼's avatar 麦壳饼

修复 空值问题

上级 8fce56fa
......@@ -57,7 +57,7 @@ namespace IoTSharp.Extensions
{
try
{
if (kp.Key != null)
if (kp.Key != null && kp.Value !=null)
{
var tl = from tx in devdata where tx.KeyName == kp.Key && tx.DataSide == dataSide select tx;
if (tl.Any())
......@@ -74,6 +74,10 @@ namespace IoTSharp.Extensions
t2.FillKVToMe(kp);
}
}
else
{
exceptions.Add($"Key:{ kp.Key}","Key is null or value is null");
}
}
catch (Exception ex)
{
......@@ -123,8 +127,6 @@ namespace IoTSharp.Extensions
}
internal static void FillKVToMe<T>(this T tdata, KeyValuePair<string, object> kp) where T : IDataStorage
{
switch (Type.GetTypeCode(kp.Value.GetType()))
{
case TypeCode.Boolean:
......
......@@ -91,9 +91,12 @@ namespace IoTSharp.Storage
{
msg.MsgBody.ToList().ForEach(kp =>
{
var tdata = new TelemetryData() { DateTime = DateTime.Now, DeviceId = msg.DeviceId, KeyName = kp.Key, Value_DateTime = new DateTime(1970, 1, 1) };
tdata.FillKVToMe(kp);
_dbContext.Set<TelemetryData>().Add(tdata);
if (kp.Value != null)
{
var tdata = new TelemetryData() { DateTime = DateTime.Now, DeviceId = msg.DeviceId, KeyName = kp.Key, Value_DateTime = new DateTime(1970, 1, 1) };
tdata.FillKVToMe(kp);
_dbContext.Set<TelemetryData>().Add(tdata);
}
});
var result1 = await _dbContext.SaveAsync<TelemetryLatest>(msg.MsgBody, msg.DeviceId, msg.DataSide);
result1.exceptions?.ToList().ForEach(ex =>
......
......@@ -104,9 +104,12 @@ namespace IoTSharp.Storage
var lst = new List<TelemetryData>();
msg.MsgBody.ToList().ForEach(kp =>
{
var tdata = new TelemetryData() { DateTime = DateTime.Now, DeviceId = msg.DeviceId, KeyName = kp.Key, Value_DateTime = new DateTime(1970, 1, 1) };
tdata.FillKVToMe(kp);
lst.Add(tdata);
if (kp.Value != null)
{
var tdata = new TelemetryData() { DateTime = DateTime.Now, DeviceId = msg.DeviceId, KeyName = kp.Key, Value_DateTime = new DateTime(1970, 1, 1) };
tdata.FillKVToMe(kp);
lst.Add(tdata);
}
});
int ret = db.Insert(lst);
_logger.LogInformation($"新增({msg.DeviceId})遥测数据{ret}");
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册