유창한 nhibernate에서 자동 app 유형을 비유 자형 유형과 어떻게 결합합니까?
-
05-07-2019 - |
문제
지금, 나는 수동으로 정의하는 고전적인 유창한 nhibernate 스타일에서 프로젝트를 전환하고 있습니다. ClassMap
각 도메인 엔티티에 대해 자동 맵퍼가 매핑을 자동 생성하도록합니다. 그러나 나는 오래된 클래식 매핑과 일치하도록 자동 appings를 조정할 때까지 이미 클래식 스타일로 매핑 한 클래스를 계속 사용하고 싶습니다.
유일한 문제는 자동 맵퍼가 이미 클래식 유창한 nhibernate 스타일에 매핑 된 클래스를 때릴 때 유창한 nhibernate 충돌이 충돌한다는 것입니다.
여기 내 AutoPersistenceModel
설정 코드 :
_autoPersistenceModel = AutoMap.AssemblyOf<DomainEntity>();
_autoPersistenceModel.AddMappingsFromAssembly(typeof (PlayerPersistenceMap).Assembly);
_autoPersistenceModel.Alterations(x =>
x.Add<AutoMappingAlteration>())
.Setup(s =>
{
s.FindIdentity = type => type.Name == "ID";
s.IsBaseType = type => (type == typeof(DomainEntity));
})
.Conventions
.AddFromAssemblyOf<IdentityColumnConvention>()
.UseOverridesFromAssemblyOf<PlayerMappingOverride>();
누구든지 여기서 나를 도울 수 있습니까?
더 많은 정보:
나는 또한 유창한 nibernate wiki에 언급 된 기술을 시도했습니다. 여기. 아아 나는 여전히 오류를 받고 있습니다. Duplicate class/entity mapping
.
해결책
그만큼 혼합 유창한 매핑 및 자동 매핑 예제 위키에서는 작동하지 않으면 버그가 있습니다.
해결 방법으로 자동 앱에서 수동으로 매핑 된 유형을 제외하십시오. 당신은 그것을 사용하여 그렇게 할 것입니다 Where
Wiki 예제에서 보여지는 방법 : 다음과 같은 방법.
AutoMap.AssemblyOf<DomainEntity>()
.Where(type => type != typeof(OneOfYourManuallyMappedClasses));
유창한 매핑이 많으면 자동 캡처 설정을 깨끗하게 유지하는 컬렉션을 만들 수 있습니다.
var mappedTypes = new[] { typeof(One), typeof(Two) };
AutoMap.AssemblyOf<DomainEntity>()
.Where(type => !mappedTypes.Contains(type));
다시 말하지만, 이것은 필요하지 않지만 Wiki 예제로 작동하지 않는다고 확신하면 문제를 제기하는 것이 좋습니다.
제휴하지 않습니다 StackOverflow