내가 말할 것이다, 여기에 트릭은 다음과 같습니다
- 지도 해당 열 한 속성입니다. 그것도 보호, 모델의 다른 부분에 대한 숨길 수 (예를 들어 here 참조)
- 값을 매핑에 액세스 설정이 가상 (I 유엔 매핑 속성을 의미) 공용 속성을 만듭니다.
예를 들어, 매우 비슷한 시나리오를 사용하여 version
을 매핑합니다. 클라이언트 - 그것은 UI로 전송하기 어렵다 byte[]
와 협력
<version name="Timestamp" generated="always" unsaved-value="null" type="BinaryBlob">
<column name="RowVersion" not-null="false" sql-type="timestamp"/>
</version>
:이 매핑 될 때 그래서. 이것은 이것이 도메인 엔터티 표현이됩니다.
protected virtual byte[] Timestamp { get; set; }
public virtual string Version
{
get { return Timestamp.IsEmpty() ? null : Convert.ToBase64String(Timestamp); }
set { Timestamp = value.IsEmpty() ? null : Convert.FromBase64String(value); }
}
곳에서 ...
주를 우리가 string
으로 클라이언트에 version
를 보낼 수 있습니다 ... 그리고 그것을 다시 얻을 갖는 : 나는 공공 재산에 DB 컬럼을지도한다. 그것은 QueryOver
쿼리에서 해당 속성을 사용하기 쉽게 만듭니다 ... 최소한 getter는 public 일 수 있습니다.