Универсальный метод Delete

ADO.NET
  1. год назад
    Добавлено год назад UsilaDobry

    Пробовал универсальный метод удаления данных.
    В теле метода

    public static void Delete<TEntity>(TEntity entity)
        where TEntity : class
            {
                // Настройки контекста
                МодельДанныхContainer modelDiary = new МодельДанныхContainer();
                modelDiary.Database.Log = (s => System.Diagnostics.Debug.WriteLine(s));
    
                modelDiary.Entry<TEntity>(entity).State = EntityState.Deleted;
                modelDiary.SaveChanges();
            }

    появляется ошибка на строке свойства State
    Message=На объект сущности не могут ссылаться несколько экземпляров интерфейса IEntityChangeTracker.

    Собственно пытаюсь удалить запись из таблицы БД, которая связана с базовой таблицей внешним ключом.
    Для этого:
    1. Загружаю универсальным методом базовую таблицу
    var пользовательList = Repository.Select<Пользователь>() .Include(p => p.ЗаписьДневникаБег) .Where(i => i.Статус == true) .ToList();
    2. Из связанных данных выбираю коллекцию записей

    var записи = пользовательList.Select(p => p.ЗаписьДневникаБег).ToList();

    3. из записей выделяю запись, которая выделена в DataGrid и предназначена для удаления и передаю эту запись в универсальный метод Delete()

    foreach (var запись in записи)
                    {
                        foreach (var y in запись)
                        {
                            if (y.Id == выборЗаписьДневникаБег.Id)
                                Repository.Delete(y);
                        }
                    }

    Где делаю ошибку?

или зарегистрируйтесь чтобы ответить