实体框架代码第一个异常

本文关键字:异常 第一个 代码 框架 实体 | 更新日期: 2023-09-27 18:35:07

i 当我尝试保存我的整个嗡嗡声时,我有这个例外:

     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 时,我有异常

实体框架代码第一个异常

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