2017-11-21 15 views
0

다른 테이블에 대한 추가 데이터로 사용할 테이블을 만들려고합니다. 예를 들어키/값 열 관계가있는 Fluent NHibernate

  • 나는 나의 기본 테이블이 사람라고합니다. 이 테이블에는 PersonDynamicInfo이라는 테이블의 0 또는 여러 동적 레코드 (자유 텍스트 키 및 자유 텍스트 값)가 포함됩니다.

    공개 PersonMap() { Id (x => x.Id); 테이블 ("사람"); 지도 (x => x.Name);

    hasMany의 (X => x.PersonDynamicInfo) .KeyColumn ("ID") .Access.CamelCaseField (Prefix.Underscore) .AsSet() .Cascade.AllDeleteOrphan() .Not.KeyNullable() ; }

    공개 PersonDynamicInfo() { Id (x => x.Id); 테이블 ("PersonDynamicInfo"); 지도 (x => x.Key);
    지도 (x => x.Value);

내가 달성하고자하는 것은 다음과 같다 } : 나는 사람 개체에 액세스

  • , 나는 Person.PersonDynamicInfo을 편집 할 수 있도록하려면 있도록이 테이블에 대한 정보 물체와 같습니다. 예를 들어, "키 :A | : TEST"값을 가진 PersonDynamicInfo 레코드를 가진 사람을 생성한다고 가정 해 봅시다. Person 객체에 액세스 할 때 모든 Person.PersonDynamicInfo (컬렉션에서)를 제거하고 새 객체를 추가합니다. "키 : B | : TEST"및 Save this 객체입니다. Person.PersonDynamicInfo는 마지막 레코드 만 포함하는 대신 두 레코드를 포함합니다.

PersonDynamicInfo에서 사용되지 않는 레코드를 수동으로 삭제하지 않고이 방법을 사용할 수 있습니까?

감사합니다.

public PersonDynamicInfo(){ 
    Id(x => x.Id); 
    Table("PersonDynamicInfo"); 
    Map(x => x.Key); 
    Map(x => x.Value); 
    References(x => x.Person, "PersonId").Cascade.All(); 
} 

내가하지만, 질문을 오해 할 수 있습니다

답변

0

나는 당신이 필요로하는 것은 당신의 PersonDynamicInfo 매핑에 Person에 대한 참조입니다 생각합니다.