【发布时间】:2011-06-23 16:22:12
【问题描述】:
假设我有一个包含多行的文件,每行代表一个Person,Person 实体有一个identity column,它也是primary key。假设 Person 可以在文件中重复,如果是,也许我想做最后一个条目获胜的场景。在下面的示例中,我使用存储库通过社会安全号码从数据库中检索一个人。问题是,当相同的 SSN 再次出现在文件中时,存储库仍然返回 null,即使从技术上讲,具有该 SSN 的人已经被添加到上下文中(SaveChanges 尚未被调用)。我意识到我可以通过跟踪自己已经添加了哪些Person 对象来解决这个问题。我想知道这种情况的最佳做法是什么。
谢谢。
foreach(row in fileRows)
{
Person person = personRepository.GetBySSN(row.SSN);
if(person == null)
{
//insert logic
}
else
{
//update logic
}
}
personRepository.SaveChanges();
【问题讨论】:
-
我不同意。尽管这些是相似的主题,但我想知道通过存储库工作时的最佳实践是什么。我意识到如果我可以直接访问 EF 上下文,我将能够找出是否添加了某些 SSN。由于我通过存储库的抽象工作,我想知道最佳实践是什么。
标签: c# .net entity-framework entity-framework-4