I am getting a error Cannot attach an entity that already exists. at the line DbSet.Attach(entity); . Is there something I need to do different before the update?
Should I add a if condition to the ‘DbSet.Attach‘?
Error
System.Data.Linq.Table1.Attach(TEntity entity, Boolean asModified) at System.Data.Linq.Table1.Attach(TEntity entity)
public void ResetAdminConfig(AdminConfig _adminConfig)
{
AdminConfig adminConfig = new AdminConfig();
adminConfig = GetAdminConfig().SingleOrDefault(e => e.Id == _adminConfig.Id);
adminConfig.ConfigSetting = false;
adminConfig.Modified = DateTime.Now;
UnitOfWork.GetRepository<AdminConfig>().Update(adminConfig);
}
public void Update(TEntity entity)
{
DbSet.Attach(entity);
_context.Refresh(RefreshMode.KeepCurrentValues, entity);
}
public IRepository<TEntity, OrderTemplateDataContext> GetRepository<TEntity>() where TEntity : class
{
if (!_repositories.ContainsKey(typeof(TEntity)))
{
var repository = new OrderTemplateRepository<TEntity>(Context);
_repositories.Add(typeof(TEntity), repository);
}
return (IRepository<TEntity, OrderTemplateDataContext>)_repositories[typeof(TEntity)];
}
private AdminConfig GetAdminConfig(long id)
{
return GetAdminConfigs().SingleOrDefault(e => e.Id == id);
}
private IQueryable<AdminConfig> GetAdminConfigs()
{
return UnitOfWork.GetRepository<AdminConfig>().Get(e => !e.IsDeleted);
}