我已经阅读了许多与此错误相关的答案,我也得到了一些与我的问题相近的答案,但我无法追踪我在这里做错了什么
我有一个类通用存储库
public abstract class GenericRepository<TC,T>:IGenericRepository<T> where T:class where TC:ObjectContext , new()
{
private TC _entities = new TC();
public TC Context
{
get { return _entities; }
set { _entities = value; }
}
public virtual IQueryable<T> GetAll()
{
IQueryable<T> query = _entities.CreateObjectSet<T>();
return query;
}
public virtual void Add(T entity)
{
_entities.CreateObjectSet<T>().AddObject(entity);
}
// save,update,insert etc etc
}
我的存储库类是
public class MenuRepository:GenericRepository<mbsEntities,menu>,IMenu
{
public menu GetMenu(int id)
{
return GetAll().FirstOrDefault(x => x.menu_id == id);
}
public bool CreateMenu(string menuName, int menuLevel, string menuUrl, int menuParent,int menuPosition,int roleId)
{
if(!Profile.IsInRole(Enums.Enumerations.Roles.Admin))
return false;
var menu = new menu()
{
menu_name = menuName,
menu_level=menuLevel,
menu_url = menuUrl,
menu_parent = menuParent,
menu_position = menuPosition,
};
var roleRepository = new RoleRepository();
var role = roleRepository.GetAll().FirstOrDefault(x => x.id == roleId);
menu.traffic_role.Add(role);
try
{
Add(menu); // here im getting error “An entity object cannot be referenced by multiple instances of IEntityChangeTracker”
Save();
}
catch (Exception)
{
return false;
}
return true;
}
}
我走错路了吗??