Я довольно новичок в ORM, и в настоящее время я пробую Telerik OpenAccess ORM, но вопрос, возможно, на самом деле не относится к этому ORM, и я все еще не полностью остановился на этом ORM.
Я пытаюсь добиться привязки объекта DataGridView, чтобы показать коллекцию объектов Customers, показывающую всех клиентов в таблице customer.
Я связал его с BindingSource и связал BindingSourceв элемент управления DataGridView.
Я могу успешно изменить существующие элементы (используя метод SaveChanges для OpenAccess ORM).Когда я сохраняю, содержимое сохраняется обратно в базу данных, как я и ожидал.
Однако, если я удаляю строку из DataGridView или добавляю новые, они не сохраняются в базе данных без сообщения об ошибке илиисключение вообще.
В идеале я хотел бы иметь возможность выполнять все операции CRUD, возможные с ORM, точно так же, как я мог бы делать это с типичной таблицей DataTable ...
Код, выполняющий привязку, выглядит следующим образом:
List<Customer> ukCustomers = (from c in diagrams.Customer
where c.Country == "UK"
select c).ToList();
customersBindingSource.DataSource = ukCustomers;
customersBindingSource.AllowNew = true;
В настоящее время я предполагаю, что новые строки, добавленные пользователем в DataGridView, не являются частью списка, а являются "автономными" экземплярами Customer?Я бы подумал, что они будут автоматически добавлены в список.То же самое касается удаленных строк, которые, как я думал, будут автоматически удалены из списка, и что метод SaveChanges из ORM сможет подобрать это?
Должен ли я делать что-то большее, чем просто связывание?У кого-нибудь был такой успех, и в целом, насколько успешным был ваш опыт связывания данных с WinForms, с вашим ORM (не обязательно Telerik)?
Спасибо.