2012-09-18 6 views
0

ConfORM과 함께 NHibernate를 사용하여 내 도메인 엔티티를 매핑합니다.확장 클래스를 이용한 매핑

가정하면 다음과 같은 클래스 :

Diagram

public class Event { 
    public virtual Guid Id { get; set; } 
    public virtual string Title { get; set; } 
    public virtual bool Active { get; set; } 
} 

public class EventA : Event { 
    public virtual string PropertyA { get; set; } 
} 

public class EventB : Event { 
    public virtual string PropertyB { get; set; } 
} 
나는 파생 클래스에서 NHibernate에 테이블 필드를 반복하지 이 필요하지만, 그림에서와 같이 기본 클래스를 사용합니다.

는 설정을 준수 내 :

var domainAssembly = typeof(Event).Assembly; 
var domainEntities = from t in domainAssembly.GetTypes() where t==typeof(Event) select t; 
var orm = new ObjectRelationalMapper(); 
orm.Patterns.Sets.Add(new UseSetWhenGenericCollectionPattern()); 
orm.Patterns.PoidStrategies.Add(new ConfOrm.Patterns.IdentityPoidPattern()); 
orm.TablePerConcreteClass(domainEntities); 
var patternsAppliers = new CoolPatternsAppliersHolder(orm); 
var mapper = new Mapper(orm, patternsAppliers); 
[...] 

문제 수에 접근하는 방법에 어떤 아이디어가? EventA에서 별도의 ID 열이 없기 때문에 nessesary

Event 
----- 
PK | Id 

EventA 
----- 
PK,FK | EventId 

를 만들 것이다 orm.TablePerClass(domainEntities);

답변

0

교환 orm.TablePerConcreteClass(domainEntities);

관련 문제