0

当我尝试保存我的实体buzzmate时,我遇到了这个例外:

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

当我试图拯救嗡嗡声时,我有异常

4

1 回答 1

1

问题很可能是p. 不要使用存储在会话中的实体进行持久化,否则您将无法避免此错误。尝试创建克隆p并将其分配给buzzmate,如果您使用相同的 EF 上下文进行加载socialcampaign和持久化buzzmate,它应该可以工作。

于 2012-05-23T09:44:09.440 回答