1

LINQ to SQL 클래스의 부분 클래스에서 상속 될 수있는 추상 클래스를 만들고 있습니다. LINQ to SQL 클래스에는 여러 가지 내장 된 부분 메서드가 포함되어 있습니다. 추상 클래스에서 하나 이상의 부분 메소드를 구현할 수있는 방법이 있습니까? 부분 메소드는 부분 클래스 나 구조체 내에 만 포함될 수 있다는 것을 알고 있습니다. 나는 그것을 할 또 다른 방법이 있어야한다고 확신합니다.부분 메서드 내 추상 클래스 (C#)

여기에 자세한 내용입니다 :

  • 나는 뉴스라는 데이터베이스 테이블을 가질 수있다. 이 테이블을 포함하는 LINQ to SQL dbml 파일을 만들면 자동 생성 코드가 News의 부분 클래스를 생성합니다.
  • 이 부분 클래스에는 몇 가지 부분 메서드가 들어 있습니다.
  • 저는 모든 LINQ to SQL 클래스에서 사용할 여러 메서드가 포함 된 클래스를 만들고 있습니다.
  • 이러한 메서드 중 하나는 각 LINQ to SQL 클래스에 부분 메서드가 추가 된 것입니다. 나는이 방법을 사용할 공통의 ​​몸을 가지고있다. 이 메서드를 각 부분 클래스에 추가하는 대신 한 번 생성하고 기본 클래스 상속을 사용하여 상속하는 방법을 찾고 있습니다.

희망 사항은 더 설명하는 데 도움이됩니다.

답변

1

일부 메소드는 상속에 사용할 수 없습니다. 추상 기본 클래스에 일반 메소드를 추가 할 수는 있지만 부분 메소드 선언과 자동으로 "쌍"하지는 않습니다. 그래서 아니야. 물론 부분 메소드 구현 호출을 기본 클래스로 호출 할 수 있습니다.

참고 또한 공통의 코드는 감사 같은 것들에 관련된 경우 (사람 /시)은 또한 DataContextSubmitChanges 메서드를 재정의하고, GetChangeSet 호출하여이 작업을 수행 할 수 있습니다

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

, 메모를 dbml (like so)에있는 모든 엔티티에 공통 기본 클래스를 지정할 수도 있습니다. 당신은 각 부분 수업에서 손으로 그것을 할 필요가 없습니다.

0

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