テーブル内のレコードの削除が機能しますが、テーブルに子の外部キー関係がない限り、問題が発生します。親テーブルがあり、EFを使用してレコードを削除すると、「1つ以上の外部キー・プロパティーがnull値ではないため、関係を変更できませんでした」というエラーで失敗します。私は、親テーブルを参照している子テーブルのカスケード削除を削除しました。私はSSMS内でテストしました。それはうまく動作します。しかし、C#からは失敗します。一般的なDeleteRowメソッドを定義したビューモデルがあります。削除される行に子テーブルがない限り、これは素晴らしい動作です。テーブルが親テーブルの場合は失敗します。私はここでStackoverflowの答えを探してみましたが、今閉じた:stackoverflow.com/questions/17723276/delete-a-single-record-from-entity-frameworkこの質問に出くわしました。この質問に対する答えは、EFの離散的な表を使用していました。我々はジェネリック薬を使用している。それだけではない関連レコードのいずれかにするために、親テーブル内のレコードのためにそれを設定することだと、私はEntityState.Deletedが動作している列挙にStateプロパティを設定することは考えていないジェネリックを使用しているときに、EFから1つのレコードを削除するにはどうすればよいですか?
public void DeleteRow(T row)
{
if (App.MainDataContext != null && row != null)
{
App.MainDataContext.Entry<T>(row).State = EntityState.Deleted;
App.MainDataContext.SaveChanges();
}
}
:ここに私たちのコードです子テーブル(MainDataContextは.EDMXファイルのエンティティです)ジェネリックを使用してテーブルタイプを渡すときに、EF 6を使用するテーブルから単一のレコードを削除するにはどうすればよいですか?
[about](http://stackoverflow.com/questions/41858097/entity-framework-hard-cascade-delete/41859633#41859633)実際にはあなたが提供したリンクと同じです。あなたが必要とするのは、それを翻訳することだけです。例えば、 'App.MainDataContext.Set().Attach(row); App.MainDataContext.Set ().Remove(row); ' –