0

テーブルから行を削除しようとしていますが、

私のコード:

var strUsername = GridMain.SelectedRows[0].Cells[0].Value.ToString().Trim();
Users selectedUser = _db.Users.First(usr => usr.UserName == strUsername);

_db.DeleteObject(selectedUser);
_db.SaveChanges();

LoadGrid(PresentationMode.Users);

私のコードは正しく機能しています

ただし、データベースの1行のみの場合、エラーが発生しますSaveChanges()

エラーメッセージ :

エントリの更新中にエラーが発生しました。詳細については、InnerExceptionを参照してください

その上でエラーが発生した行:

ここに画像の説明を入力してください

内部例外:

DELETEステートメントがREFERENCE制約「FK_UserReport_Users」と競合していました。データベース「Reporter」、テーブル「dbo.UsersReports」、列「UserName」で競合が発生しました。

4

2 に答える 2

2

この行は、UserReport テーブルで利用可能/参照されます。したがって、カスケード削除オプションを有効にしない限り、削除できません。または、UserReport の行を削除してから、もう一度削除してください。

于 2012-06-07T06:27:04.540 に答える
1

参照は UserReport テーブルに存在するため、親テーブルの値を削除することはできません。まず、親子関係を削除するか、カスケード削除オプションを使用してください

于 2012-06-07T06:32:01.657 に答える