Привязка Nhibernate к DataGridView, вставка не работает - PullRequest
0 голосов
/ 04 февраля 2012

Чтобы связать класс NHibernate с DataGridView, я делаю:

IList<DatabaseAccess.poco.Employee> employees =
                (from e in session.Linq<DatabaseAccess.poco.Employee>() select e).ToList<DatabaseAccess.poco.Employee>();

this.employeeBindingSource.DataSource = employees;

И когда я фиксирую, отправляются только изменения в строках, которые уже существуют в базе данных, используя сетку для создания новойне работает

Итак, можно ли ожидать, что привязки списка к DataSource достаточно, и мне не нужно создавать объект Employee и выполнять session.Save(new_employee);?Или это обязательно?

Я не нашел ни одного учебника, описывающего полную привязку DataGridView вместе с созданием новых строк.

Ответы [ 2 ]

1 голос
/ 04 февраля 2012

Это обязательно.DataGridView не знает о NH, а NH не знает, что DataGridView добавил новую строку.Таким образом, вы должны, например, в обработчике событий UserAddedRow сохранить новую сущность.

using (ITransaction tx = session.BeginTransaction())
{
    session.Save(albumBindingSource.Current);
    tx.Commit();
}
0 голосов
/ 04 февраля 2012

В методе page_load, является ли ваша привязка сетки данных в IsPostBack.

как это:

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            //Grid Bind
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...