【发布时间】:2012-12-27 10:46:23
【问题描述】:
我正在开发一个具有 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();
【问题讨论】:
-
我不知道这个框架,但我认为唯一好的建议 - 在处理 SQL 或外部数据库时 - 只是使用它们自己的函数,不要在 C 中塑造你的业务逻辑或C++ 或您使用的任何语言,只需在 SQL 文档中搜索适当的函数,然后只使用这些函数并让它们为您完成工作。
-
我完全不同意 user1824407...我认为您在将业务逻辑保留在应用程序中而不是在数据层中的做法是正确的。
标签: performance entity-framework sql-server-ce entity-framework-4.3