多个 IEntityChangeTracker 实例无法引用实体对象的错误

问题描述

我正在尝试保存发票详细信息,但收到异常“IEntityChangeTracker 的多个实例无法引用实体对象”。

我将 Unity 依赖注入用于 DI 和工作单元模式用于调用存储库。

**Unity Container**
public static void RegisterComponents()
{
    UnityContainer container = new UnityContainer();

    // register all your components with the container here
    // it is NOT necessary to register your controllers
              
    container.RegisterType<applicationContext>(new PerResolveLifetimeManager(),new InjectionFactory(c => new applicationContext()));
    container.RegisterType<IUnitOfWork,UnitOfWork>(new PerResolveLifetimeManager());
    //rest of code

这里我已经注册了我的上下文类和工作单元。

**Unit of work** 

public class UnitOfWork : IUnitOfWork
{
    public UnitOfWork(applicationContext context)
    {
        _context = context;
        Invoice = new InvoiceRepository(_context);
    }
}

public IInvoiceRepository Invoice { get; private set; }

在工作单元中,我在构造函数中传递了上下文类。

现在,当我尝试在服务类中使用它时。

 _unitOfWork.Invoice.Add(invoice);  

这个服务类基本上调用Generic Repository来执行操作。

通用存储库

public virtual void Add(TEntity entity)
{
    Context.Set<TEntity>().Add(entity);
}

在add方法中抛出错误一个实体对象不能被多个IEntityChangeTracker实例引用”。

我已经阅读了很多帖子,但仍然不知道该怎么做...

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)