私はORMsでかなり新しく、Telerik OpenAccess ORMを試していますが、そのORM、とにかくまだORMを完全に解決していない。ORM、DataGridViewへのデータバインディング:データベースに保存されていない新しい行の挿入/削除
私が達成しようとしているのは、DataGridViewをバインドして、Customersテーブルのすべての顧客を示すCustomersオブジェクトのコレクションを表示することです。
私はそれをBindingSourceにバインドし、BindingSourceをDataGridViewコントロールにバインドしました。
(OpenAccess ORMのSaveChangesメソッドを使用して)既存のアイテムを正常に変更できます。保存すると、内容はデータベースに保存されます。
ただし、DataGridViewから行を削除したり、新しい行を追加したりすると、エラーメッセージも例外もなく、データベースに保存されません。
理想的には、私のような結合ルックスを行って...私は典型的なデータテーブルでこれを行うことができるだろうと同じように、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メソッドがそれを取り上げることができるだろうか?
バインディング以上のことをしなければなりませんか? これをやり遂げたことがある人は誰もいませんでしたが、一般に、あなたのORM(Telerikのものではない)を使って、WinFormsのデータバインディングの経験はどれくらい成功しましたか?
ありがとうございました。
THAのDataGridViewのコンボボックスがある場合、それは動作しません。これらの場合、ObservableCollectionは連続的にDataError Exceptionを生成します。 – sentenza