0

私は私の全体のバズメイトを保存しようとすると、この例外があります:

     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です:

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

buzzmateを保存しようとすると、例外が発生します

4

1 に答える 1

1

問題はおそらくpです。セッションに保存されているエンティティを永続化に使用しないでください。使用すると、このエラーを回避できなくなります。のクローンを作成しpて割り当ててみてください。buzzmate同じEFコンテキストを使用してロードsocialcampaignと永続化を行うと、機能するbuzzmateはずです。

于 2012-05-23T09:44:09.440 に答える