Почему нет никакого учебника о привязке NHibernate
к DataGridView
в Winforms
. Только я хочу его использовать? Я знаю, что это вопрос привязки коллекции к DataGridView. Но у меня проблемы с созданием CRUD.Nhibernate bind to DataGridView
У меня есть базы данных SQLite + таблица с отображением:
<class name="Employee" table="emplyees" lazy="true">
<id name="id">
<generator class="increment"></generator>
</id>
<property name="first_name" not-null="true"></property>
<property name="last_name" not-null="true"></property>
<property name="login" not-null="true"></property>
<property name="sid"></property>
</class>
код, который работает.
Employee new_employee =
new Employee() { first_name = "test1", last_name = "test3", login = "login1" };
session.Save(new_employee);
session.Commit();
Но если я связываю с DataGridView и использование сетки, чтобы вставить новую строку:
transaction = session.BeginTransaction();
employees = (from e in session.Linq<Employee>() select e).ToList<Employee>();
this.employeeBindingSource.DataSource = employees;
private void employeeDataGridView_UserAddedRow(object sender, DataGridViewRowEventArgs e)
{
Employee new_employee = (Employee)this.employeeBindingSource.Current;
session.Save(new_employee);
}
После session.Commit()
я получаю сообщение об ошибке: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect).
В журналах я вижу, что NH посылает UPDATE для этой новой строки. Должен быть вставлен.
Публичные свойства должны быть в этом формате => UpperCase. Итак, FirstName не first_name. ** стандарты ** вы знаете ... – gdoron
спасибо за совет – userbb
А как насчет ответа? – gdoron