我从设备中获取数据并将其保存在数据库中,但每次我获取数据时,它都会复制已经保存在数据库中的前一个数据。因此,增加db中的数据大小(无用的)。
撷取:
if (listInfo != null && listInfo.Count > 0)
{
foreach (var p in listInfo)
{
db.DL.Add(p);
}
}
如何更改此设置,以便仅保存唯一数据,而不保存db中已有的数据。
假设我现在从设备中获取所有3124条记录,但我不想将它们全部存储到数据库中。我只想存储最新的(在这种情况下最后一个2017-11-29 13:37:47.000
),db应该有3124条记录而不是6247(现在正在发生)
答案 0 :(得分:0)
您可以在保存之前(使用主键)进行检查,如果记录存在则不保存
if (listInfo != null && listInfo.Count > 0)
{
foreach (var p in listInfo)
{
if (db.D1Log.Any(x => x.PrimaryKey == p.PrimaryKey ))
continue;
db.D1Log.Add(p);
db.SaveChanges();
}
}