2013-06-05 6 views
2

에 대한 엔티티 프레임 워크의 일부 클래스의 비 DB-속성을 사용하는 방법 : 내가 ProductsDescription 사이 *.edmx 파일에 새로운 연결을 만들려면나는 두 개의 테이블이 협회

------Product----- 
| ProductID (key)| 
| DescricptionID | 
|----------------| 

---Description---------- 
| DescriptionType (key)| 
| DescriptionID (key)| 
| LanguageID  (key)| 
| Description   | 
|----------------------| 

을 , 나는 테이블 Description의 모든 기본 키에 대해 Dependent Properties을 지정해야합니다. 그래서 나는 이것을 위해 새로운 Partial 클래스를 만들었다. 예를 들어
: 가능이 두 테이블 사이에 새로운 협회에 Dependent Properties 같은 사람들을 선택 내 *.edmx 파일이 새 속성을 보는 방법 : 이제 문제는 다음입니다

public partial class Product 
    { 
     public int DescriptionType 
     { 
      get { return 1; } 

      set { this.DescriptionType = 1; } 
     } 

     public string LanguageID 
     { 
      get { return "EN"; } 

      set { this.LanguageID = "EN"; } 
     } 
    } 

.
데이터베이스가 올바르게 설계되지 않았지만이를 변경할 가능성은 없습니다. 내 문제에 대한 또 다른 해결책이 있습니까?

+0

귀하의 속성 setters는 무제한 재귀를 가지고 있으며'StackOverflowException'으로 폭파됩니다. – hvd

답변

-1

그런 식으로 부분 클래스를 만들고 연결할 수 없습니다.

EDMX 편집기에서 연관을 만들 수 있습니다.

먼저 EF 코드를 사용하고 부분 클래스에 DbSet을 사용하는 것도 시도 할 수 있습니다하지만 난 그것을 해본 적이

(어쩌면 바보 같은 질문입니다 ...하지만 당신이 관계가 왜 추가하지 않는 것이 필요한 경우 DB에)

+0

이미 언급했듯이 데이터베이스를 변경할 수 없기 때문입니다. 동일한 데이터베이스에 연결된 다른 프로그램이 수십 개 있습니다. –

+0

죄송합니다. 마지막 2 행을 읽지 않았습니다. 유일한 해결책은 EDMX를 편집하여 연결을 만드는 것입니다. EDMX는 DB가 아니므로 조인 또는 다른 것으로 DB를 쿼리하기 위해 EF로 해결할 연결을 만들 수 있습니다. EDMX를 수정할 수 없다면 변경 사항을 추적하고 데이터로드를위한 작업을 수행 할 수있는 연결을 가질 수있는 기회를 가질 수 없다고 생각합니다. –

관련 문제