私がやっていることは、むしろ単純です。WPF DatagridからLINQ-to-SQL経由で新しいレコードを挿入できません
私はLINQ-to-SQLデータコンテキストをセットアップしており、テーブルの1つはUsersです。デザイナーでは、クラスを「ユーザー」として表示し、ソースを「dbo.Users」としています。アクセスはパブリックで、データベースにアクセスして検索と更新を行うことができます。このクラスは、I/D/U操作に対して「ランタイムを使用」に設定されています。
新しいレコードを追加しようとすると問題が発生します。
- 私はAutoGenerateColumns =「真」
- CanUserAddRowsに設定データグリッドは
- 「真」RowEditEndingイベントがメソッドに設定されているに設定されています。
レコード(データコンテキストでSubmitChanges()を追加すると、何も起こりません。それは単に挿入をしません。私はブレークポイントでローカルオブジェクトをチェックしています。すべての兆候は、それが実際にそこにあり、追加するべき正しいレコードを持っているということです。
しかし、もっと多くのことがあります。
私はUsers.InsertOnSubmit()を実行し、DataGridのCurrentItem(ユーザーにキャスト)を渡すと、「既に存在するエンティティを追加できません」というエラーが表示されますが、レコードが実際に挿入されています。
誰か手掛かりがありますか?
(FWIWは、バックエンドはSQL2K8エクスプレスです)
EDIT:
例外を与えませんが、レコードを追加しませんコードのいずれか:
private void UserGrid_RowEditEnding(object sender, DataGridRowEditEndingEventArgs e)
{
ctx.SubmitChanges();
}
と例外を与えるコード:
private void UserGrid_RowEditEnding(object sender, DataGridRowEditEndingEventArgs e)
{
ctx.Users.InsertOnSubmit((User) e.Row.Item);
ctx.SubmitChanges();
}
「全く動作していません」という動作に関連するコードと「エンティティは既に存在します」というエラーを表示するコードを表示できますか? –