实体框架6.2克隆对象部分地从分离的对象中排除属性

时间:2019-05-07 21:58:08

标签: .net entity-framework

使用以下代码将属性值从一个对象(分离的对象)克隆到另一个对象:

protected static void UpdateValues<T>(DbContext context, T from, T to) where T : class
        {
            context.Entry(to).CurrentValues.SetValues(from);
        }

我想要的是下面这样的东西。基本上,对象“ from”具有一些我在复制时会忽略的属性。下面的代码失败,因为“发件人”对象已分离(POCO从Web反序列化了),并且我不想附加它,因为它是从数据库中“原始”加载的。

protected static void UpdateValues<T>(DbContext context, T from, T to) where T : class
{
    // Get dictionary and then modify it to remove Created/Updated/RowVersion values
    var dictionary = context.Entry(from).CurrentValues.Clone();

    // TODO: Here I would make/modify dictionary to exclude certain properties

    context.Entry(to).CurrentValues.SetValues(dictionary);


}

我正在考虑使用“ OriginalValues”集合,但不确定如何使用它。也许我应该使用当前代码,并且可以在属性上使用一些神奇的“还原”命令?

0 个答案:

没有答案