1

dbcontext を使用してエンティティにバインドされた dgv を設定しました。正常に動作します。行が dgv に表示され、セルを変更して SaveChanges を使用して更新できます。ただし、dgv に新しい行を追加しようとすると、保存されません。dgv がエンティティにバインドされている場合、新しい行が自動的に追加されるべきではありませんか、またはそれを追加するために何かをする必要がありますか? 何?サンプルコードを提供してください。次はdgvから削除してみます。同様の問題が発生しますか?どうすればそれを機能させることができますか?私はインターネットで例を探しましたが、それらはエンティティのバインドにとどまり、追加や削除は含まれていません。どんな助けでも大歓迎です。

4

2 に答える 2

0

同様の問題を持つリンクがいくつか見つかりました。そのうちの1つは次のとおりです。

DataGridView の AllowUserToAddRow プロパティが機能しない

.ToList を使用するとバインディングが台無しになるようです。私の場合、ソースとして MyContext.MyTable.Local.ToList を使用していました。.ToList を削除すると、すべてが完全に機能します。おそらく、誰かがこれが機能する理由をより詳細に教えてくれるでしょうか???

これを最初に見つけてくれた人に感謝します。

于 2013-01-05T00:17:54.040 に答える
0

.NET Framework 4 のソリューション

.ToList() を削除しようとしましたが、結果が得られません。

したがって、私の回避策は次のとおりです。

削除
の場合: datagridview UserDeletingRow イベントで

// Get deleted entity:
myEntityType currentEntity = (myEntityType)BindingSource[e.Row.Index];

// Delete directly from context
context.myEntityType.Remove(currentEntity);

挿入
の場合: 保存ボタンで BindingSource をループし、ID == 0 のエンティティがあるかどうかを確認してから、それぞれに context.MyEntityType.Add(currentEntity); を追加します。

于 2014-01-10T22:56:42.927 に答える