Как я могу предотвратить вставку объекта EF, который уже существует в БД, при добавлении объекта, который содержит этот первый объект?
Это'Это довольно понятно. У меня есть класс, который содержит еще одинзовут их Предмет и Классная комната
public class Subject
{
public Classroom Class {get; set;}
}
м с использованием фасадов без сохранения состояния, что означает, что мой DbContext удаляется сразу после восстановления объектов и создается для хранения новых. не должен»не знаю, что класс нет новый объект, так какs ID уже есть в БД? С помощью отладчика я могу отследить точку прямо перед вызовом метода SaveChanges, а Classroom.id - это тот, который у меня есть в базе данных. Какие'проблема? EF добавляет новый класс с точно такими же свойствами, как предыдущий, но с новым ПК. Что я здесь не так делаю?
Этот код используется для общих операций CRUD (они есть в моем DbContext). И обновление, и удаление работают очень хорошо:
public void Update(DbSet MySet, object Obj)
{
MySet.Attach(Obj);
var Entry = this.Entry(Obj);
Entry.State = EntityState.Modified;
this.SaveChanges();
}
public void Insert(DbSet MySet, object Obj)
{
MySet.Add(Obj);
this.SaveChanges();
}
public void Delete(DbSet MySet, object Obj)
{
MySet.Attach(Obj);
var Entry = this.Entry(Obj);
Entry.State = EntityState.Deleted;
this.SaveChanges();
}