이 하나가 내 머리를 찢어 버렸다. 나는 Fluent NHibernate에서 자동 매핑 기능을 사용하고 있지만 선택적으로 무시하지만 다른 일부는 잘 구현 한 것처럼 보입니다.자동 매핑을 무시하는 유창한 NHibernate 무시
작동하지 :
public class CupTree
{
public virtual int Id { get; set; }
public virtual int TournamentId { get; set; }
public virtual int CurrentRound { get; set; }
public virtual IList<CupRound> Rounds { get; set; }
}
작동하지 오버라이드 :
public class CupTreeOverride : IAutoMappingOverride<CupTree>
{
public void Override(FluentNHibernate.Automapping.AutoMapping<CupTree> mapping)
{
mapping.HasMany(x => x.Rounds).Cascade.All();
}
}
스키마 생성 :
public void GenerateSchema()
{
var config = new MappingConfiguration();
Fluently.Configure()
.Database(MsSqlConfiguration.MsSql2008.ConnectionString(/*my conn str*/))
.Mappings(m => m.AutoMappings.Add(
AutoMap.AssemblyOf<CupTree>(config)
.Conventions.Add(
DefaultLazy.Never(),
Table.Is(x => x.EntityType.Name + "s"))
.UseOverridesFromAssembly(Assembly.GetAssembly(typeof(CupTreeOverride)))
))
.ExposeConfiguration(cfg => new SchemaUpdate(cfg).Execute(false, true))
.BuildSessionFactory();
}
을 따라서는 CupTree 테이블을 작성하는 동안 그것은 CupRounds 표를 작성하지 않습니다 조금도. 그러나 PreMatchTeamInfo 테이블과 모든 하위 테이블을 생성합니다. 나는 분명히 무언가 어리석은 일을하고 있지만 그것을 발견 할 수는없는 것 같습니다. 어떤 도움이라도 대단히 감사합니다.
P.S 표명과 KeyColumn을 모두 명시 적으로 지정해 봤습니다. 차이점이 없습니다. – BlackSpy
추가 업데이트 - .hbm.xml 파일을 내보낼 수 있으며 출력해야하는 항목 (올바른 키 열 등을 사용하여 일대 다)에 따라 데이터베이스 테이블이 다음과 같이 지정되지 않았습니다. .hbm.xml 파일 – BlackSpy