2012-12-18 3 views
0

클래스 라이브러리를 만들고 SQL 클래스에 linq를 추가하고 일부 테이블을 드래그합니다. 다른 클래스 라이브러리 만들기 위 프로젝트에 참조를 추가하고 GetCustomers에 간단한 함수를 만듭니다 (dim query = from c from c select to return C). 그런 다음 Visual Basic .NET 웹 응용 프로그램을 추가하고 두 번째 클래스 라이브러리를 만들고 GetCustomers 메서드를 호출합니다. 오른쪽으로 보이지 않는 SQL 데이터 모델에 linq가 포함 된 클래스에 대한 참조를 추가하라는 오류 메시지가 나타납니다.Linq to SQL 발행

어떻게 이러한 레이어를 올바르게 분리 할 수 ​​있습니까? 나는 감사하고 기사 또는 VB에서 모든 코드. 닷넷.

감사 데이터 클래스는 SQL 클래스 라이브러리에 Linq에 정의되어 있기 때문에

+0

정확한 오류 메시지와 분리 및 참조를 나타내는 코드 샘플을 추가 할 수 있습니까? –

답변

1

는 웹 응용 프로그램은 해당 클래스가 무엇인지하기 위해에 대한 참조를 필요로한다.

실제로 레이어를 분리하려면 두 번째 클래스 라이브러리에 use the Linq to SQL classes to create separate transfer objects이 필요합니다.

automapper과 같은 도구가 도움이 될 수 있습니다.

+0

의견을 보내 주셔서 감사합니다. 아래 내용이 정확하면 누구나 확인할 수 있습니까? 1. 클래스 추가 Linq To SQL 클래스를 만듭니다. 이것은 DAL입니다. 2. 다른 클래스 라이브러리 프로젝트를 추가하고 속성을 추가하여 데이터베이스 테이블을 모방합니다. 1 단계에서 프로젝트에 대한 참조를 추가합니다.이것은 DTO입니다. 3. 다른 클래스 라이브러리 프로젝트를 추가하고 내 모든 메소드를 추가하여 필요한 데이터를 검색하십시오. 2 단계에서 프로젝트에 참조를 추가합니다. 이것은 비즈니스 계층입니다. 4. 3 단계에서 만든 프로젝트에 참조가있는 웹 프로젝트를 추가하고 적절하게 메서드를 호출합니다. 감사합니다. –

+0

@Jupiter - DTO 클래스 라이브러리가 DAL 클래스 라이브러리를 참조해야하는지 잘 모르겠습니다. 비즈니스 계층 클래스 라이브러리는 DTO 및 DAL 계층 라이브러리를 모두 참조하고 DAL 클래스에서 DTO 클래스로의 변환을 처리합니다. 이렇게하면 DTO 클래스 라이브러리가 DAL 클래스와 완전히 독립적 일 수 있습니다. –

0

함수가 List (Of Customers) 유형의 값을 반환하는 것처럼 들리지만 Customers 유형이 첫 번째 클래스 라이브러리에 정의되어있는 것처럼 들립니다.

프로젝트가 "데이터", "비즈니스"및 "UI"라고 가정 할 때 UI 프로젝트에서 Data 클래스 라이브러리를 참조하지 않으려면 비즈니스 프로젝트가 프로젝트를 복사하거나 제시해야합니다. 비즈니스에서 정의 된 양식에 데이터의 결과가 표시되어 UI에서 사용할 수 있습니다. 그렇지 않으면 궁극적으로 비즈니스에 대해서만 호출을 수행하더라도 UI는 유형 정의를 위해 데이터를 참조해야합니다.

1

LINQ to SQL 모델을 사용하려면 명시 적으로 참조해야합니다. 다른 참조를 통해 참조를 추론 할 수는 없습니다.

DTO 및보기 모델을 사용하는 방법이 있습니다. 웹 앱이 중간 계층에있는 저장소를 호출이 시나리오에서는

  • 중간 계층 엔티티에 대한 데이터 레이어를 호출
  • 데이터 계층은 데이터 전송에 중간 계층에게
  • 중간 계층 엔티티를 변환하는 엔티티를 제공합니다 개체를 웹 응용 프로그램에 반환합니다.
  • 웹 응용 프로그램은 데이터 전송 개체를 사용하여 엔터티 상태를 중간 계층에 전달합니다.
  • 웹 응용 프로그램은 DTO를 번역하여 프레젠테이션을 위해 모델을 봅니다.

이것은 꽤 일반적인 개요입니다. 기본적으로 각 레이어는 데이터가 어떻게 보이는지에 대한 자체 아이디어를 가지고 있으며 변환 방법에 대해 다른 레이어와 계약을 맺습니다. 다른 사람들은 내가 할 수있는 것보다 더 잘 설명 할 수 있습니다. This은 N-Tier 아키텍처의 꽤 괜찮은 기사입니다.