방법: SpecificFinder 메서드 추가
SpecificFinder 메서드를 만들어 단일 엔터티 인스턴스를 반환할 수 있습니다. 사용자가 비즈니스 데이터 웹 파트 또는 외부 목록에서 엔터티를 선택하면 BDC(비즈니스 데이터 연결) 서비스에서 SpecificFinder 메서드를 실행합니다. 자세한 내용은 비즈니스 데이터 연결 모델 디자인을 참조하십시오.
SpecificFinder 메서드를 만들려면
BDC 디자이너에서 엔터티를 선택합니다. Visual Studio에서 BDC 디자이너에 엔터티를 추가하는 방법에 대한 자세한 내용은 방법: 모델에 엔터티 추가를 참조하십시오.
보기 메뉴에서 다른 창을 클릭한 다음 BDC 메서드 세부 정보를 클릭합니다.
BDC 메서드 세부 정보 창이 열립니다. BDC 메서드 세부 정보 창에 대한 자세한 내용은 BDC 모델 디자인 도구 개요를 참조하십시오.
BDC 메서드 세부 정보 창의 메서드 추가 드롭다운 목록에서 SpecificFinder 메서드 만들기를 선택합니다.
모델에 다음 요소가 추가됩니다. 이러한 요소는 BDC 메서드 세부 정보 창에 표시됩니다.
메서드
메서드의 입력 매개 변수
메서드의 반환 매개 변수
각 매개 변수에 대한 형식 설명자
메서드의 메서드 인스턴스
자세한 내용은 비즈니스 데이터 연결 모델 디자인을 참조하십시오.
Visual Studio 속성 창을 엽니다.
반환 매개 변수의 형식 설명자를 엔터티 형식 설명자로 구성합니다. 엔터티 형식 설명자를 만드는 방법에 대한 자세한 내용은 방법: 매개 변수의 형식 설명자 정의를 참조하십시오.
참고
엔터티에 Finder 메서드를 추가한 경우 Finder 메서드에 정의한 형식 설명자가 사용되므로 이 단계를 수행할 필요가 없습니다.
참고
엔터티 형식의 식별자 필드가 데이터베이스 테이블에서 자동으로 생성되는 필드에 해당할 경우 식별자 필드의 읽기 전용 속성을 True로 설정합니다.
메서드 세부 정보 창에서 메서드의 메서드 인스턴스를 선택합니다.
기본적으로 Visual Studio에서 이 메서드의 이름은 MethodInstance1입니다.
속성 창에서 반환 매개 변수 이름 속성을 메서드의 반환 매개 변수 이름으로 설정합니다. 메서드 인스턴스 속성에 대한 자세한 내용은 MethodInstance를 참조하십시오.
솔루션 탐색기에서 엔터티에 대해 생성된 서비스 코드 파일을 마우스 오른쪽 단추로 클릭한 다음 코드 보기를 클릭합니다.
코드 편집기에서 엔터티 서비스 코드 파일이 열립니다. 엔터티 서비스 코드 파일에 대한 자세한 내용은 비즈니스 데이터 연결 모델 만들기를 참조하십시오.
SpecificFinder 메서드에 코드를 추가합니다. 이 코드는 다음 작업을 수행합니다.
데이터 소스에서 레코드를 검색합니다.
BDC 서비스에 엔터티를 반환합니다.
다음 예제에서는 SQL Server의 AdventureWorks 샘플 데이터베이스에서 연락처를 반환합니다.
참고
ServerName 필드의 값을 서버 이름으로 바꿉니다.
Public Shared Function ReadItem(ByVal contactID As Integer) As Contact Const ServerName As String = "MySQLServerName" Dim dataContext As AdventureWorksDataContext = _ New AdventureWorksDataContext("Data Source=" & ServerName & _ ";Initial Catalog=AdventureWorks;Integrated Security=True") Dim Contact As Contact = _ (From TempContacts In dataContext.Contacts.AsEnumerable().Take(20) _ Where TempContacts.ContactID = contactID _ Select TempContacts).[Single]() Return Contact End Function
public static Contact ReadItem(int contactID) { const string ServerName = "MySQLServerName"; AdventureWorksDataContext dataContext = new AdventureWorksDataContext ("Data Source=" + ServerName + ";" + "Initial Catalog=AdventureWorks;Integrated Security=True"); Contact Contact = (from contacts in dataContext.Contacts.AsEnumerable().Take(20) where contacts.ContactID == contactID select contacts).Single(); return Contact; }