홈>
테이블 :
Shop
Product
Category
관계 :
(Shop) 1 <---> n (Categories)
(Shop) 1 <---> n (Products)
(Categories) n <---> n (Products)
캐스케이드 삭제 :
Shop ---> Categories ... I defined this using fluent API
Shop ---> Products ... I defined this using fluent API
Categories <---> Products ... EF 4.1 automatically defines cascade for "Category_Product" join table
문제 : 위의 "다중"계단식 삭제 경로 예외가 발생합니다.
잠재적 수정 :
<올>이 문제를 처리하는 사람들은 어떻습니까?
감사합니다
- 답변 # 1
관련 자료
- shell script - 모든 것에 대해 단 한 번의 확인으로 rm을 사용하여 여러 파일을 삭제 하시겠습니까 (rm -i)?
- c# - SqlCommand를 사용하여 여러 테이블에서 삭제
- Word 2016 - Word 2016- RSCC가 여러 개인 경우 선택 항목을 삭제하지만 보호 된 문서 (VBA)에서 첫 번째 섹션이 삭제되지 않도록하는 방법은 무엇입니까?
- 줄리아 - 데이터 프레임에서 인덱스로 여러 행을 삭제하는 방법
- 파이썬은 목록에서 여러 레코드를 삭제합니다
- PowerShell을 사용하여 여러 대용량 파일에서 단어가있는 줄을 빠르게 삭제하는 방법
- [Delphi]에 남아있는 여러 문자열 삭제
- excel - 여러 워크 시트의 테이블에서 빈 행 삭제
- windows - 여러 CSV 파일을 처리하고 powershell을 사용하여 이중 세미콜론 문자가있는 단일 열에서 행 삭제
- sql - Oracle DBMS의 외래 키에 ON DELETE CASCADE 옵션 사용
- python - S3 boto3에서 여러 파일 및 특정 패턴을 삭제하는 방법
- sql - postgresql - 여러 측면에서 여러 조건이있는 일대 다 관계
- php - laravel에서 여러 ID를 삭제하는 방법은 무엇입니까?
- sql - 스테이징 테이블에 삭제 캐스케이드를 추가하는 방법
- amazon web services - AWS CLI를 사용하여 여러 AWS 스냅 샷을 대량 삭제하는 방법은 무엇입니까?
- shell - "0"행을 삭제하고 폴더의 여러 파일을 삭제하는 방법은 무엇입니까?
- sqlalchemy - 데이터는 SQL Alchemy에 추가 된 계단식 삭제 옵션없이 삭제됩니다
관련 질문
- c# : FirstOrDefaultAsync()를 사용하여 Entity Framework Core에서 값 생성
- IQueryable에서 생성된 SQL 스크립트에서 중첩 개체의 별칭을 설정하는 방법
- c# : TSQL -개체 또는 열 이름이 없거나 비어 있습니다. .. SQL Server 데이터베이스를 디스크에 백업하려고 할 때
- asp.net : 단순 DeleteAll에서 Entity Framework "대기 작업 시간 초과"
- Dotnet EF Core Linq 문자열은 쉼표로 분할된 목록 문자열에 포함되어 있습니다.
- c# : Entity Framework 증가 [중복]
- SQL 열 내용을 기반으로 데이터를 다른 테이블에 삽입
- c# : Scaffold-DbContext 시도 중 문제
- INSTEAD OF 트리거를 사용하여 뷰에 병합
- c# : .NET Entity Framework 6 다대다 업데이트
이것은 엔터티 프레임 워크의 문제가 아니라 SQL Server의 문제입니다. 예외가 실제로 순환 연속 삭제를 의미한다고 생각하지 않습니다. 상점에서의 계단식으로 인해 결합 테이블 레코드가 카테고리 및 제품 측에서 모두 삭제 될 수 있기 때문에 다중 계단식 삭제 경로를 의미 할 수 있습니다. 캐스케이드 할 때 삭제해야하는 레코드와시기를 정확하게 계산하려면 좀 더 복잡한 알고리즘이 필요하기 때문에 SQL 서버에서는이를 허용하지 않습니다.
단순히이 문제를 해결해야하며 상점을 삭제하기 전에 모든 관련 레코드 (카테고리 또는 제품)를 수동으로 삭제해야합니다. 저장 프로 시저 (또는 직접 SQL DELETE 명령)가 필요합니다. 그렇지 않으면 먼저 모든 프로 시저를로드하고 하나씩 삭제해야합니다.
수정 :
주석에서 지적한 것처럼 하나의 캐스케이드 경로를 대체 할 경우 관련 레코드를 삭제하는 BEFORE DELETE 트리거를 추가하여 해결할 수도 있습니다.