假设我有一个多行的文件,每一个代表一个Person
,该Person
实体有一个identity column
这也是primary key
。假设一个Person
可以在文件中重复,如果是的话,也许我想要做一个最后的入场场景。在下面的示例中,我使用存储库通过社会安全号从数据库检索人员。问题是,当同一个SSN再次出现在文件中时,即使技术上该SSN的用户已被添加到上下文中(SaveChanges
尚未被调用),该存储库仍会返回空值。我意识到我可以通过跟踪自己已经添加了哪些对象。我想知道这种情况下的最佳做法是什么。 谢谢。检索实体添加()之后,但之前的SaveChanges()被调用
foreach(row in fileRows)
{
Person person = personRepository.GetBySSN(row.SSN);
if(person == null)
{
//insert logic
}
else
{
//update logic
}
}
personRepository.SaveChanges();
重复? http://stackoverflow.com/questions/5719990/how-do-i-view-an-entityset-and-uncommitted-changes http://stackoverflow.com/questions/5383485/entity-framework-4-and-transactions -do-uncommitted-changes-affect-select-results – Holystream
我恭敬地不同意。即使这些是类似的主题,我想知道在通过存储库进行操作时最佳做法是什么。我意识到如果我可以直接访问EF环境,我将能够找出是否添加了某个SSN。因为我通过抽象存储库工作,所以我想知道最佳实践是什么。 – e36M3