1) При удалении записи из источника связывания вам потребуется удалить эту запись в контексте вашей сущности.
dbContext.mytalbe.Remove(recordToRemove);
Так же, как и при добавлении, вам потребуется
dbContext.mytable.Add(newRecord);
В настоящее времяЯ использую сетку DevExpress с Entity 4.1, поэтому она может отличаться от стандартной сетки WinForm.
Я обнаружил, что обычно в вашем коде добавления или удаления записи вы добавляете / удаляете их непосредственно в сущность.Уровень dbContext, тогда изменение будет отражено на компонентах, в противном случае добавление / удаление не будет выполняться автоматически, если вы сделаете другой путь и т. д. добавьте / удалите их со стороны связывания.Я не думаю, что вам нужно делать и то, и другое, и я думаю, что вносить изменения на стороне dbContext проще.
2) То, что я сделал, я проверил состояние записи объекта, например, следующий кодЯ использовал эту функцию, чтобы определить, был ли объект изменен.
public bool IsDirty(Purchase purchase)
{
bool result = false;
if (this.dbContext.Entry(purchase).State != EntityState.Unchanged)
result = true;
return result;
}
3) Перед сохранением ничего не будет изменено в БД, верно?Таким образом, вы можете просто избавиться от текущего dbContext и снова извлечь эти данные из БД с исходными данными.Это будет самый простой способ, который я могу придумать.
Надеюсь, что это поможет вам.