问题描述
我正在尝试保存发票详细信息,但收到异常“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 (将#修改为@)