更新一个对象中的值更新第二个对象值ASP.Net Identity 2.0

时间:2018-06-22 05:54:48

标签: c# asp.net .net asp.net-mvc-4 asp.net-identity

我正在基于id提取这2个对象,Id相同

var oldeUserExist = await UserManager.FindByIdAsync(model.UserData.Id ?? null);
var userExist = await UserManager.FindByIdAsync(model.UserData.Id ?? null);

问题是什么

->考虑oldeUserExist.phonenumber为空

->如果我更新userExist对象中的电话号码值,它也会更新oldeUserExist对象中的电话号码值

我的问题是FindByIdAsync正在按引用对象进行复制吗?如果是,那么我们应该如何避免这种情况?

谢谢

1 个答案:

答案 0 :(得分:0)

只需使用以下代码创建User对象的克隆:

public static T Clone<T>(T toClone) where T : class
{
        string tmp = Newtonsoft.Json.JsonConvert.SerializeObject(toClone,Formatting.None, new JsonSerializerSettings
        {
            PreserveReferencesHandling = PreserveReferencesHandling.All,
        });
        return Newtonsoft.Json.JsonConvert.DeserializeObject<T>(tmp);
}

这样,两个对象就不会互相引用。