我对ORM还比较新,目前正在尝试使用Telerik OpenAccess ORM,但问题可能并不特定于该ORM,而且我还没有完全确定使用哪个ORM。
我的目标是将DataGridView绑定到显示Customer对象集合的所有客户的客户表。
我已经将其绑定到BindingSource,并将BindingSource绑定到DataGridView控件。
我可以成功地修改现有项目(使用OpenAccess ORM的SaveChanges方法)。当我保存时,内容会按预期保存回数据库。
然而,如果我从DataGridView中删除一行或添加新行,它们不会保存到数据库中,也不会出现任何错误消息或异常。
理想情况下,我希望能够像使用典型DataTable一样执行ORM的所有CRUD操作...
执行绑定的代码如下:
List<Customer> ukCustomers = (from c in diagrams.Customer
where c.Country == "UK"
select c).ToList();
customersBindingSource.DataSource = ukCustomers;
customersBindingSource.AllowNew = true;
我的猜测是,用户添加到DataGridView的新行不属于列表,而是“独立”的客户实例?我原本以为它们会自动添加到列表中。删除的行也是一样,我认为它们会自动从列表中删除,并且ORM的SaveChanges方法能够捕获到这一点?
除了绑定之外,我是否应该做些什么?
是否有人成功地做到了这一点,总的来说,您使用WinForms和所选择的ORM的数据绑定经验有多成功(不一定是Telerik的ORM)?
谢谢。