我的模型中有一个映射集合:
public class Project
{
// ...
public virtual ICollection<ProjectSupplier> ProjectSuppliers {get; set;}
}
我想检索ProjectSuppliers
集合的原始值(我知道它已被加载)。我试过了:
var originalProjectSuppliers = _context.Entry(project)
.OriginalValues
.GetValue<ICollection<ProjectSupplier>>("ProjectSuppliers");
但它给了我错误:
System.ArgumentException : The 'ProjectSuppliers' property does not exist or is not mapped for the type 'Project'
我也尝试过这样的DbCollectionEntry
:
_context.Entry(project).Collection(p => p.ProjectSuppliers)
但它不包含OriginalValues
,只包含当前的。{/ p>
答案 0 :(得分:1)
显然是this is the only way。不是我所希望的,但答案是由一个在实体框架上工作的人写的,所以我猜他会知道的。
根据上面的链接答案,我构建的内容可能更符合您的实际问题,或者至少您可以使用它来取回原始集合。我不确定这是最好的方式,所以我posted my own question on how to do it better。