使用以下代码将属性值从一个对象(分离的对象)克隆到另一个对象:
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”集合,但不确定如何使用它。也许我应该使用当前代码,并且可以在属性上使用一些神奇的“还原”命令?