gpt4 book ai didi

c# - 更新一个对象中的值更新第二个对象值 ASP.Net identity 2.0

转载 作者:太空宇宙 更新时间:2023-11-03 14:53:02 26 4
gpt4 key购买 nike

我正在根据 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 是通过引用对象提供副本吗?如果是,那么我们应该怎么做才能避免这种情况?

谢谢

最佳答案

只需使用以下代码创建 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);
}

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

关于c# - 更新一个对象中的值更新第二个对象值 ASP.Net identity 2.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50981487/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com