Nhibernate绑定到DataGridView,插入不起作用

时间:2012-02-04 15:45:40

标签: nhibernate datagridview

要将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 个答案:

答案 0 :(得分:1)

这是必须的。 DataGridView不了解NH和NH并不知道DataGridView添加了新行。因此,您必须在UserAddedRow事件处理程序中保存新实体。

using (ITransaction tx = session.BeginTransaction())
{
    session.Save(albumBindingSource.Current);
    tx.Commit();
}

答案 1 :(得分:0)

在page_load方法中,您的数据网格是否在IsPostBack中绑定。

像这样:

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            //Grid Bind
        }
    }