私は、私のエンティティのクローンを作成するために必要なに関するデータは、エンティティの属性と私のテーブル循環参照が保存しまった何のトリックを、次のソリューションを使用していません。私はエンティティにも何か問題があるのを指摘していました。 シリアル化に必要なライブラリはJson.Net(Newtonsoft.Json dll)です。
private static T CloneObject<T>(T obj)
{
if (obj == null)
return obj;
string ser = JsonConvert.SerializeObject(obj, Formatting.Indented,
new JsonSerializerSettings() {
NullValueHandling = NullValueHandling.Ignore,
MissingMemberHandling = MissingMemberHandling.Ignore,
ReferenceLoopHandling = ReferenceLoopHandling.Ignore});
return (T) JsonConvert.DeserializeObject(ser, obj.GetType());
}
使用例:[JSONにシリアライズEntity Frameworkのオブジェクト]の
protected object CopyObj(Object obj)
{
return CloneObject(obj);
}
var cust1 = this.cts.Customers().Where(cc => cc.Id == 3).Include(cc => cc.Addresses).FirstOrDefault();
var cust2 = CopyObj(cust1) as Customers;
//Cust2 now includes copies of the customer record and its addresses
可能重複(http://stackoverflow.com/questions/657939/serialize-entity-framework-objects-into- json) –
@CraigStuntzいいえ、私は新しいオブジェクトにmaunallyプロパティをマップする必要はありません。そして、これをJSON.NETを使ってどのように行うことができるか質問しています – Johan
提案されたソリューションはJSON.NETで動作します。代入文より循環参照を扱うのであれば、それはあなた次第です。しかし、JSON.NETは、他のソリューションが動作しないことを意味するものではありません。 –