2009-09-14 3 views
0

외래 키없이 LINQ 연결을 만들 수 있음을 알고 있습니다. 문제는 DBML 파일에 [Association] 속성을 추가하여 (디자이너와 동일) 데이터베이스를 새로 고친 후 전체 테이블 구조를 다시로드 한 후 다시 지울 것입니다.LINQ : 외래 키가없는 코드에서 지속적인 연결 생성

(DBML을 새로 고친 후에도 계속 유지하기 위해) 도메인 개체에 내 부분 확장 등을 배치 할 수있는 MyData.cs 파일 (DBML의 일부로)이 있음을 알고 있지만 그렇지 않습니다. 거기에 협회를 만드는 법을 알고 있습니까?

답변

1

CS 파일과 사용자 지정 부분 클래스를 만들 수 있습니다.

public partial class myClass 

그리고 거기에 연관시킬 수 있는지 확인하십시오. 나는 이런 방식으로 커스텀 협회와 함께 일한 적이 없지만 그것이 속성에 적용된 것처럼 보입니다. 부분 클래스에 속성을 잘라내어 붙여 넣으면 빌드됩니다.

public partial class Parent 
{ 

    [Association(Name = "Parent_Child", Storage = "_Childs", ThisKey = "ParentKey", OtherKey = "ChildKey")] 
    public EntitySet<Child> Childs 
    { 
     get 
     { 
      return this._Childs; 
     } 
     set 
     { 
      this._Childs.Assign(value); 
     } 
    } 
} 
+0

실제로 작동하도록하려면 _Childs를 정의해야하지 않습니까? 'protected EntityRef _Childs;'와 같은 부분 메소드를 정의하십시오. OnCreate'partial void OnCreated() {this._Childs = default (EntityRef ); }'. – jahu

관련 문제