如何检索集合的原始值

时间:2014-06-13 13:08:46

标签: entity-framework entity-framework-6

我的模型中有一个映射集合:

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>

1 个答案:

答案 0 :(得分:1)

显然是this is the only way。不是我所希望的,但答案是由一个在实体框架上工作的人写的,所以我猜他会知道的。

更新

根据上面的链接答案,我构建的内容可能更符合您的实际问题,或者至少您可以使用它来取回原始集合。我不确定这是最好的方式,所以我posted my own question on how to do it better