3 вопроса о Bindingsource и структуре сущностей - PullRequest
0 голосов
/ 03 декабря 2011

в моем приложении у меня есть от с bindingsource к сущности.

Mybindingsource.datasource = (из t в context.mytable где ....... Выберите t) .ToList

1) Когда я обновляю запись в bindingsource, эта запись обновляется в базе данных. Но если я добавляю новую запись или удаляю запись в bindingsource, база данных не обновляется. Что я могу сделать?

2)Как определить, изменилась ли запись в bindingsource?(я хочу включить кнопку сохранения после этого обнаружения)

3.Если изменить запись в bindingsource, как я могу отменить изменения (перед сохранением)

Заранее спасибо!

1 Ответ

0 голосов
/ 10 января 2012

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 и снова извлечь эти данные из БД с исходными данными.Это будет самый простой способ, который я могу придумать.

Надеюсь, что это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...