문제

LINQ에서 SQL 클래스의 부분 클래스에 상속 될 수있는 추상 클래스를 만들고 있습니다. LINQ에서 SQL 클래스에는 내장 부분 방법이 포함되어 있습니다. 추상 클래스에서 하나 이상의 부분 방법을 구현할 수있는 방법이 있습니까? 부분적 방법은 부분 클래스 또는 스트러크 내에 만 포함될 수 있다는 것을 알고 있습니다. 나는 그것을 할 또 다른 방법이 있어야한다고 확신합니다.

자세한 내용은 다음과 같습니다.

  • News라는 데이터베이스 테이블이있을 수 있습니다. 이 테이블이 포함 된 LINQ에서 SQL DBML 파일을 작성하면 자동 생성 코드는 뉴스에 대한 부분 클래스를 생성합니다.
  • 이 부분 클래스에는 몇 가지 부분 방법이 포함되어 있습니다.
  • 모든 LINQ에서 SQL 클래스에서 사용하고 싶은 몇 가지 방법이 포함 된 수업이 있습니다.
  • 이러한 방법 중 하나는 각 LINQ에서 SQL 클래스에 추가 된 부분 방법입니다. 이 방법에 사용할 일반적인 본문이 있습니다. 이 방법을 각 부분 클래스에 추가하는 대신 한 번 만들고 기본 클래스 상속을 상속받을 수있는 방법을 찾고 있습니다.

더 많은 설명에 도움이되기를 바랍니다.

도움이 되었습니까?

해결책

부분적 방법은 상속을 통해 사용할 수 없습니다. 초록 기본 클래스에 정기적 인 메소드를 추가 할 수 있지만 부분 메소드 선언과 함께 자동으로 "페어"되지는 않습니다. 그래서 안돼. 물론 부분 메소드 구현을 기본 클래스로 가져갈 수 있습니다.

또한 공통 코드가 감사 (WHO/시기)와 같은 것과 관련이있는 경우 DataContext'에스 SubmitChanges 방법 및 호출 GetChangeSet:

    public override void SubmitChanges(ConflictMode failureMode)
    {
        ChangeSet delta = GetChangeSet();
        //... use delta.Updates, delta.Inserts and delta.Deletes
        base.SubmitChanges(failureMode);
    }

마지막으로 DBML의 모든 엔티티에 대한 공통 기본 클래스를 지정할 수도 있습니다 (그렇게 좋아요); 각 부분 클래스에서 손으로 할 필요는 없습니다.

다른 팁

나는 당신이하고 싶은 일을 이해한다고 생각하지만 그렇지 않다면 알려주세요. 당신은 당신의 추상 기본 클래스를 부분적으로 만들고 원하는 구현을 해당 클래스로 가져올 수 있습니다. 또는 추상 수업을 들고 자녀 수업에 액세스 할 수있는 기능을 캡슐화 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top