부드러운 삭제가 필요한 데이터베이스의 경우 IsActive
비트 열이 있습니다. false이면 레코드가 삭제 된 것으로 표시됩니다.표현식 방문자 또는 IDbCommandTreeInterceptor 무시
99 %의 시간 동안 쿼리에는 IsActive
이 true로 설정된 레코드 만 포함되어야합니다. Entity Framework 6에서는 사용자 정의 DefaultExpressionVisitor
(IDbCommandTreeInterceptor
통해)을 사용하여 테이블에 열이 존재할 때 자동으로이 확인 작업을 수행합니다.
그러나 매우 드문 경우이지만이 동작을 재정의해야합니다. 표현식 방문자 또는 명령 트리 인터셉터가 확인할 수있는 IQueryable 또는 DbContext의 확장 메서드를 작성하는 방법이 있습니까? 내가 것
var query = queryable.Where(...);
:이 작업을 수행 할 때
나는 그렇지 않으면 발생할 수있는 그 위에서 설명한 동작에 영향을
var query = queryable.IncludeInactive().Where(...);
또는
_dbContext.IncludeInactive = true;
var query = queryable.Where(...);
_dbContext.IncludeInactive = false;
같은 뭔가를 바라고 있어요 가능한 경우 확장 방법 경로를 선호하십시오.