繁体   English   中英

具有两个不同对象的参考的奇怪问题

[英]Strange problem with two different objects having reference

将ClaimDetail添加到tmpClaim时,也会将该ClaimDetail添加到Claim。 有人可以解释一下为什么会这样吗?

List<Claim> claims; // list data
foreach ( Claim claim in claims) {
  Claim tmpClaim = datacontext.Claims.FirstOrDefault ( c => c.Id == claim.Id );

  ClaimDetail claimDetail = new ClaimDetail ( );
  claimDetail.ClaimDetailType = "Type";

  // add claim
  datacontext.Claims.InsertOnSubmit ( tmpClaim );
  datacontext.SubmitChanges ( );
}

tmpClaim不是一个对象。 它仍然是对claims元素的引用。

从本质tmpClaim ,这意味着您对tmpClaim任何事情也在发生claims 他们是一样的东西。

如果您不希望对tmpClaim进行更改以影响claims ,则需要创建一个new Claim (以及必要的任何复制/克隆操作)并在该新对象上进行所有工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM