我正在开发一个具有 SCQL CE 4.0 数据库的应用程序,并且我使用 EF 4.3.1 作为它的 ORM。有一个要求,我必须从 XML 文件中加载 100 条记录,对照数据库检查它们(通过它们的 GUID 列),如果它们是新的,则插入它们,但如果其中一些已经存在,我必须更新这些记录。
现在我想知道这个要求的最佳方法是什么?
现在我正在使用以下代码,但我认为它效率不高。
foreach( var record in xmlRecords )
{
var existingRecord = context.Records.SingleOrDefault(r => r.Guid == record.Guid);
if( existingRecord == null )
context.Records.Add(record);
else
context.Records.ApplyCurrentValues(record);
}
context.SaveChanges();