Как выглядит ваш код для _userRepository.GetByUserName(UserName)
?
Мне кажется, что вы получаете пользователя из одного контекста и пытаетесь удалить из другого.
Например
User myUser = null;
using(MyData data = new MyData())
{
myUser = data.GetUserById(1);
}
using(MyData data = new MyData())
{
data.DeleteUser(myUser);
}
2-ые "данные" не знают об этом пользователе, потому что он не получил их.вам нужно что-то вроде
using(MyData data = new MyData())
{
data.Context.Entry(myUser).State = EntityState.Deleted;
data.SaveChanges();
}
Синтаксис может быть не совсем правильным, но по сути вам нужно установить, что ваш пользовательский объект является сущностью в этом контексте данных, а его состояние удалено.
Вы должны будете сделать что-то похожее, если хотите изменить существующий объект (установите состояние EntityState.Modified)