2010-08-02 3 views
4

내 SharpArchitecture 프로젝트에서 여러 데이터베이스를 가지고 있고 가이드는 여기에 설명 된 다음 :S 번호의 ARP 아키텍처, NHibernate에 입력 된 ID로 여러 데이터베이스

http://wiki.sharparchitecture.net/FAQ.ashx

모두가 할당 된 식별자 내 기관을 제외하고 잘 작동 . 응용 프로그램을 시작할 때 "데이터베이스가 이미 구성되었습니다."라는 메시지가 나타납니다. 뒷조사를 통해 내가 얻을 :

public void Apply(FluentNHibernate.Conventions.Instances.IIdentityInstance instance) 
     { 
      instance.Column("Id"); 
      instance.UnsavedValue("0"); 
      instance.GeneratedBy.HiLo("1000"); 
     } 

instance.GeneratedBy.HiLo("1000") 동안 발생합니다 "신원 유형 (INT, 긴, UINT, ULONG) 통합해야합니다"; 이것은 내 매핑이 할당 된 ID와 문자열 일 때 이상합니다. 내 할당 된 ID 맵을 무시한 것으로 보입니다.

[SessionFactory(DataGlobals.SecondDbFactoryKey)] 
public class SecondDbEntityMap: IAutoMappingOverride<SecondDbEntity> 
{ 
    public void Override(AutoMapping<SecondDbEntity> mapping) { 
     mapping.Id(x => x.AssignedIdProperty).GeneratedBy.Assigned(); 
    } 
} 

매핑이 올바르게 작동해야하나요? 나는 첫 번째 데이터베이스에 두 개의 할당 된 id 엔티티가 있고 그들은 같은 방식으로 매핑된다 (세션 속성이 없다). 나는 이것을 알아낼 수 없다.

답변

0

HiLo 생성기는 필수 유형으로 만 작동 할 수 있기 때문에 이것은 생각합니다. 할당 된 ID가 문자열 유형이면 ID를 생성하는 다른 방법이 필요합니다.

0

HiLo는 Id 's를 할당해야하는 발전기 전략입니다. 할당하려는 경우 직접 할당 전략을 사용하고 싶습니다.

샤프 아치는 기본적으로 fluentNh 자동 설정을 제공합니다. 내 생각에 자동 매핑을로드하는 부트 스트 래퍼 코드를 확인하고 거기에 맞게 재정의하거나 무시해야합니다. 아직도 문제가 있다면 알려주세요. 코드를 살펴 보겠습니다.

관련 문제