我正在创作一个域模型,稍后我将使用 EF Code First 将其映射到数据库。这是我第一个使用 Entity Framework 的项目,虽然我不久前读过一本关于它的书,但我不记得它是如何工作的所有细节。
在域模型的一部分中,我有一对多的关系。
public class Parent
{
public IList<Child> Children { get; private set; }
}
在用户修改了 的内存实例Parent
并单击按钮后,就该将该实例持久保存到数据库中了。那时,我必须首先在数据库中存在的实例(保存之前)和内存中未保存的修改版本之间运行一些特定于域的比较逻辑。所以我需要查询数据库以检索Parent
实例的未修改副本及其Children
.
EF Code First 是否让我安全地运行这样的查询?我只是担心当 EF 运行这样的查询时,它会看到每个Child
都已经在内存中,因此重用这些实例,并覆盖它们的修改,而不是实例化重复项。在这种情况下,我实际上想要重复项。