2011-01-24 5 views
1

최근 Fluent NHibernate 1.1에서 1.0으로 마이 그 레이션 한 마이 그 레이션에는 몇 가지 주요 변경 사항이 있습니다. 예를 들어읽기 전용 속성을위한 유창한 NHibernate 매핑

, 사용

public virtual string CustomerType 
    { 
     get { return /*computed value based on _Type which is a column in database */; } 

    } 

    public virtual string MemberType 
    { 
     get { return _Type; } 
     set { _Type = value; } 

    } 

같은 도메인 모델의 필드는 모든 구성/규칙을 지정하지 않고 잘 작동합니다. 이제 "setter를 찾을 수 없습니다"라는 오류가 발생합니다. customerType 또는 _customerType과 같은 멤버 변수를 만들거나 보호 된 설정자에 넣는 것과 관련하여 솔루션을 볼 수 있습니다.

CustomerType은 데이터베이스에서 검색된 다른 값에 종속되어 있습니다.

나는 또한 DefaultAutoMappingConfiguration 같은

public override bool ShouldMap(Member member) 
    { 
     if (member.IsProperty && !member.CanWrite) 
     { 
      return false; 
     } 

     return base.ShouldMap(member); 
    } 

무시됩니다 http://support.fluentnhibernate.org/discussions/help/269-fluentnhibernate-11-automapper-doesnt-accept-read-only-properties-anymore 같은 대안을 보았다 그러나 이것은 모두 매핑에 생략되어 개인 또는 보호 세터와 다른 분야를 의미한다.

Fluent NHibernate가 지정되지 않은 경우 setter를 찾지 않지만 개인/보호 된 setter를 매핑하는 솔루션을 찾고 있습니다.

이 문제를 해결하는 방법에 대한 지침이 있으십니까?

답변

1

이것이 유일한 매핑 인 경우 또는 수동으로 무시할 수있는 몇 가지 매핑 중 하나 인 경우/아니요. setter 매핑없이 매핑하십시오. 그렇지 않으면 나열되지 않은 속성을 제안 된 제안으로 매핑을 해제하고 모든 예외를 매핑합니다. 당신이 코드를 직접 포착하고 문제를 해결하는 것보다 더 많은 것을 할 수 있는지 확신하지 못합니다.

UPDATE 난 그냥 보호 및 개인 세터에 대한 진정한 시험 및 PropertyInfo.CanWrite 수익을 달렸다. 따라서 이미 게시 한 솔루션에 실제로 문제가 있는지 확신 할 수 없습니다.

1

CustomerValue는 파생 값이므로 데이터베이스에서 나옵니까?

가상을 제거하지 않고 매핑에서 제외하지 않는 경우.

+0

예. 데이터베이스의 열에서 파생 된 값입니다. 나는 또한 질문을 업데이트했다. – WorldIsRound

관련 문제