它是一个 MVC 应用程序,具有用于 ORM 的实体框架代码优先和作为 IoC 的 MEF。如果我将 标记为DbContext
,PartCreationPolicy.Shared
则每次尝试执行编辑时都会显示该对象已存在于容器中。但是,如果我简单地标记DbContext
withPartCreationPolicy.NonShared
以便为每个请求创建它呢?这对性能有可怕的影响吗?
更新 这里是保存的代码:
Provider IRepository<Provider>.Put(Provider item)
{
if (item.Id == Guid.Empty)
{
item.Id = Guid.NewGuid();
this.Providers.Add(item);
}
else this.Entry<Provider>(item).State = EntityState.Modified;
return item;
}
这是共享时的错误
ObjectStateManager 中已存在具有相同键的对象。ObjectStateManager 无法跟踪具有相同键的多个对象。