2010-07-06 2 views
1

일부 키가 binary (16) 인 복합 키가있는 테이블을 포함하는 레거시 스키마가 있습니다. 다른 키는 MD5 해시입니다. 이 구조를 매핑하는 올바른 방법을 찾는 데 어려움을 겪고 있습니다. 내가 시도한 첫 번째 일은 간단히 byte []를 도메인 유형으로 사용하는 것이 었는데, NHibernate는 byte []가 Equals (duh!)를 구현하지 않았기 때문에이를 기각했다. 내가 시도한 다음 일은 바이트 []를 포장하고 필수 Equals 구현을 제공하기 위해 사용자 정의 사용자 유형 (즉, IUserType 구현)을 작성하는 것이지만 NHibernate (v2.1.2)가 사용자 유형을 지원하지 않기 때문에 작동하지 않는다 합성 키로 내가 시도한 마지막 것은 NHibernate가 자동으로 도메인 유형 (uniqueidentifier)과 내 컬럼 유형 (binary (16)) 사이에서 CAST 또는 CONVERT를 수행 할 것으로 기대하면서 Guid를 내 도메인 유형으로 사용하는 것이 었습니다. 그것은하지 않았다. 나는 현재 NHibernate가 CONVERT (uniqueidentifier, c)에서 c 열의 모든 사용을 감쌀 수있는 방법을 찾고있다. 이것이 가능합니까 아니면이 작업을 수행하는 또 다른 방법입니까?binary (16) 타입의 기본 키 매핑하기

답변

0

나는 nhibernate를 모른다. 그러나 이것은 정말로 SQL 질문이라고 생각한다.

테이블에서보기를 만들 수없고 이진 (16) 또는 uniqueidentifier 또는 nvarchar를 캐스팅하는 새 인덱싱 된 필드 (여기서는 ms-sql이라고 가정) 또는 이와 유사한 이유를 추가 할 수없는 이유는 무엇입니까?

+0

이 스키마는 많은 고객 위치에 배포 되었기 때문에 흥미로운 솔루션이지만 내 경우에는 작동하지 않습니다. 나는 실제로 스키마를 그대로 사용하는 솔루션이 필요합니다. – Faron