从设备获取数据并将其保存到sql重复条目

时间:2017-11-29 08:23:39

标签: sql-server

我从设备中获取数据并将其保存在数据库中,但每次我获取数据时,它都会复制已经保存在数据库中的前一个数据。因此,增加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(现在正在发生)

1 个答案:

答案 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();
                }
            }