비 제네릭 클래스의 제네릭 메서드

독일 사람

다양한 엔터티를 반환하는 라이브러리 역할을하는 간단한 데이터 액세스 클래스를 만들려고합니다. 내 모든 엔티티 클래스는 VS 2013에서 Linq-to-SQL 매퍼를 통해 생성되며 Find (primary id)를 통해 dataContext에서 모두 반환 될 수 있습니다.

모든 테이블 / 개체에 대해 반복 할 필요없이 일반 찾기, 삭제, 업데이트 등을 정의하고 싶지만 리포지토리 패턴을 만들고 싶지 않습니다.

상관없이 작동하는 일반적인 방법을 어떻게 생성합니까? 이것은 내가 가진 것이고 물론 T가 정의되지 않았다고 말하지만, 비 제네릭 클래스에서 제네릭 메서드를 만들 수 있다고 생각했기 때문에 내가 뭘 잘못하고 있습니까?

내가하고 싶은 것은

var c = DAL<Customer>.Find(id)

var e = DAL<Employee>.Find(id)

... 등

내가 쓰려고 시도한 코드는

public class DAL
    {
        private string _key;
        private DataContext _context = null;
        //private DbSet<T> _table = null;


        public DAL(string key)
        {
            _key = key;
            _context = new DataContext();
        }

        public void Dispose()
        {
            _context.Dispose();
        }


        public DbSet<T> Find<T>(int id)
        {
            var d = _context.Set<T>();
            //return d.Find(id);
        }
    }

난 좀 길을 잃었 어 ... 정의하고 싶지 않아

public class DAL<T> where T:class

각 DAL을 유형에 연결

제가 일반 넷 호드를 처음 접하는 것은 이번이 처음이므로 도움을 주시면 감사하겠습니다.

에릭 푼켄 부쉬

클래스의 일반 메서드를 지정할 수 있지만 제약 조건을 사용해야합니다.

public class DAL
{
    // .... previously written code
    public DbSet<T> Find<T>(int id) where T : class
    {
        return _context.Set<T>();
    }
}

또한 다음과 같이 호출해야합니다.

var dal = new DAL();
var data = dal.Find<Customer>(1);

또한 코드에는 많은 문제가 있고 dispose 메서드를 정의하지만 IDisposable 인터페이스를 구현하지 않았으며 실제로 메서드에서 아무것도 반환하지 않습니다.

참고 : 모든 의도와 목적을 위해 이것은 여전히 ​​저장소 패턴입니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

C ++ : 제네릭 클래스의 비 제네릭 메서드?

분류에서Dev

C ++ : 제네릭 클래스의 비 제네릭 메서드?

분류에서Dev

비 제네릭 클래스의 제네릭 클래스 메서드

분류에서Dev

제네릭 및 비 제네릭 메서드 간의 C # 오버로드 해결

분류에서Dev

정적 비 제네릭 클래스 내의 제네릭 함수?

분류에서Dev

Swift : 제네릭 클래스의 제네릭 유형 비교

분류에서Dev

C #의 제네릭 클래스가있는 제네릭 메서드

분류에서Dev

제네릭 클래스 유형 제약이있는 제네릭 메서드

분류에서Dev

Swift의 비 제네릭 함수에서 제네릭 함수 호출

분류에서Dev

제네릭 메서드의 제네릭 형식 변환

분류에서Dev

제네릭 메서드의 제네릭 형식 변환

분류에서Dev

제네릭 메서드에 제네릭 클래스 객체 보내기 (Java)

분류에서Dev

클래스의 제네릭 및 메서드 양

분류에서Dev

제네릭 클래스의 제네릭 메서드에 동적 유형의 인스턴스 전달

분류에서Dev

제네릭 클래스에서 Java 제네릭 클래스 인스턴스화

분류에서Dev

하나의 제네릭 클래스는 expression <T, bool> 메서드로 제네릭 확장을 만듭니다.

분류에서Dev

제네릭 메서드에서 클래스 별 속성 처리

분류에서Dev

개방형 제네릭을 포함하여 제네릭 서비스 유형의 모든 구현 가져 오기

분류에서Dev

C #에서 제네릭 형식과 클래스를 비교하는 방법

분류에서Dev

여러 클래스에 대한 Rails 제네릭 메서드

분류에서Dev

경량 제네릭 및 클래스 메서드

분류에서Dev

제네릭 클래스를 메서드 입력으로 사용

분류에서Dev

제네릭 컨텍스트 스위프트에서 비 제네릭 함수 호출

분류에서Dev

제네릭 자체가 제네릭 인 제네릭 클래스

분류에서Dev

제네릭 비교

분류에서Dev

동일한 서명을 사용하여 제네릭 위임을 비 제네릭으로 캐스팅

분류에서Dev

제네릭 인터페이스의 비 제네릭 클래스 구현은 상속되지 않습니다.

분류에서Dev

제네릭 유형이 1 개인 클래스에서 제네릭 유형이 2 개인 메서드

분류에서Dev

Spring에서 제네릭으로 서비스 생성

Related 관련 기사

  1. 1

    C ++ : 제네릭 클래스의 비 제네릭 메서드?

  2. 2

    C ++ : 제네릭 클래스의 비 제네릭 메서드?

  3. 3

    비 제네릭 클래스의 제네릭 클래스 메서드

  4. 4

    제네릭 및 비 제네릭 메서드 간의 C # 오버로드 해결

  5. 5

    정적 비 제네릭 클래스 내의 제네릭 함수?

  6. 6

    Swift : 제네릭 클래스의 제네릭 유형 비교

  7. 7

    C #의 제네릭 클래스가있는 제네릭 메서드

  8. 8

    제네릭 클래스 유형 제약이있는 제네릭 메서드

  9. 9

    Swift의 비 제네릭 함수에서 제네릭 함수 호출

  10. 10

    제네릭 메서드의 제네릭 형식 변환

  11. 11

    제네릭 메서드의 제네릭 형식 변환

  12. 12

    제네릭 메서드에 제네릭 클래스 객체 보내기 (Java)

  13. 13

    클래스의 제네릭 및 메서드 양

  14. 14

    제네릭 클래스의 제네릭 메서드에 동적 유형의 인스턴스 전달

  15. 15

    제네릭 클래스에서 Java 제네릭 클래스 인스턴스화

  16. 16

    하나의 제네릭 클래스는 expression <T, bool> 메서드로 제네릭 확장을 만듭니다.

  17. 17

    제네릭 메서드에서 클래스 별 속성 처리

  18. 18

    개방형 제네릭을 포함하여 제네릭 서비스 유형의 모든 구현 가져 오기

  19. 19

    C #에서 제네릭 형식과 클래스를 비교하는 방법

  20. 20

    여러 클래스에 대한 Rails 제네릭 메서드

  21. 21

    경량 제네릭 및 클래스 메서드

  22. 22

    제네릭 클래스를 메서드 입력으로 사용

  23. 23

    제네릭 컨텍스트 스위프트에서 비 제네릭 함수 호출

  24. 24

    제네릭 자체가 제네릭 인 제네릭 클래스

  25. 25

    제네릭 비교

  26. 26

    동일한 서명을 사용하여 제네릭 위임을 비 제네릭으로 캐스팅

  27. 27

    제네릭 인터페이스의 비 제네릭 클래스 구현은 상속되지 않습니다.

  28. 28

    제네릭 유형이 1 개인 클래스에서 제네릭 유형이 2 개인 메서드

  29. 29

    Spring에서 제네릭으로 서비스 생성

뜨겁다태그

보관