2012-05-23 4 views
0

나는 내가이 예외가 내 entitie의 buzzmate을 저장하려고하면EntityFramework 코드 첫 번째 예외

 An entity object cannot be referenced by multiple instances of IEntityChangeTracker. 

는이 예외를 생성하는 코드입니다 :

 var p = Session["mayaProfile"] as MayaProfile; 
     BuzzMate buzzmate = new BuzzMate(); 
     buzzmate.MayaProfile = p; 
     SocialBuzzCompaign socialcampaign = _buzzService.GetSocialBuzzCompaign(model.socialBuzzCompaignId); 
     //Ajouter le BuzzMate 
     buzzmate.SocialBuzzCompaign = socialcampaign; 
     buzzmate.JoiningStatus = JoiningStatus.Approved; 
     buzzmate.SelectionType = BuzzMateSelectionType.InvitedByBuzzLeader;      
     //try 
     // 
     _buzzService.AddBuzzMate(buzzmate); 

는이 메소드의 AddBuzzMate입니다 : 내가 buzzmate을 저장하려고하면

public void AddBuzzMate(BuzzMate buzzMate) 
    { 
     _buzzMateRepository.Insert(buzzMate); 
     _buzzMateRepository.Save(); 
    } 

나는 예외

,369이

답변

1

문제는 아마도 p 일 것입니다. 지속성을 위해 세션에 저장된 엔티티를 사용하지 마십시오.이 오류를 피할 수 없습니다. p의 복제본을 생성하고 buzzmate에 할당하고 socialcampaign을로드하는 데 동일한 EF 컨텍스트를 사용하고 buzzmate을 지속하면 작동합니다.

+0

예 미스터 Ladislav, 사실 패턴 저장소와 작업 단위를 사용하므로 내 엔티티를로드하는 데 동일한 컨텍스트에서 작업하므로 제안을 시도 할 것입니다 !!! – ucef

+0

나는 당신의 제안을 피 복제하려고한다 : MayaProfile maya = (MayaProfile) p.Clone(); 하지만 문제가 지속되면, 그 원인은 무엇입니까? BuzzMate buzzmate = 새 BuzzMate(); – ucef

+0

MayaProfile 내에 관련 엔터티가 있습니까? –

관련 문제