Странная проблема с двумя разными объектами, имеющими ссылку - PullRequest
0 голосов
/ 15 января 2019

Когда ClaimDetail добавляется в tmpClaim, этот ClaimDetail также добавляется в заявку. Может кто-нибудь объяснить мне, почему это происходит?

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 ( );
}

1 Ответ

0 голосов
/ 15 января 2019

tmpClaim не является новым объектом. Это по-прежнему ссылка на элемент внутри claims.

По сути это означает, что все, что вы делаете с tmpClaim, также происходит с claims. Это одно и то же.

Если вы не хотите, чтобы изменения в tmpClaim влияли на claims, вам необходимо создать new Claim (а также любое необходимое копирование / клонирование) и выполнить всю свою работу над этим. новый объект.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...