プロキシを有効にして Entity Framework Code First によって読み込まれたオブジェクト グラフのディープ コピーを作成するにはどうすればよいですか?
私は次のようなコードを使用しています:
static public T DeepCopy<T>(T obj)
{
BinaryFormatter s = new BinaryFormatter();
using (MemoryStream ms = new MemoryStream())
{
s.Serialize(ms, obj);
ms.Position = 0;
T t = (T)s.Deserialize(ms);
return t;
}
}
ただし、シリアライザーは、プロキシの型が既知の型ではないことを正しく報告します。
アップデート
ProxyContractResolver で DataContractSerializer を使用すると、クラスがDataContract(IsReference = true)
.
見る