2009-03-11 3 views
34

NHibernate에 초보자이며 매핑에 Fluent를 사용하려고합니다. 내 엔터티 클래스 이름은 매핑해야하는 데이터베이스 테이블 이름과 다릅니다. ClassMap<>에서 파생 된 매핑 클래스를 사용하고 있지만 테이블 이름을 지정할 수 없습니다. TableNameClassMap은 읽기 전용입니다.Fluent NHibernate ClassMap 클래스에서 테이블 이름을 지정하는 방법은 무엇입니까?

도움 주셔서 감사합니다.

답변

43

대신 을 사용하십시오.

+9

지금입니다. 2009 년 9 월 기준 테이블 ("table_name"); – Chin

6

마치 작동합니까?

public class UserAccountMap : ClassMap<UserAccount> { 
    public UserAccountMap() { 
     Table("User"); 
     Id(x => x.UserID, "UserID").GeneratedBy.Identity(); 
     Map(x => x.FirstName, "FirstName").Length(50) 
      .Not.Nullable(); 
     Map(x => x.LastName, "LastName").Length(50) 
      .Not.Nullable(); 
    } 
} 
+1

사용자는 예약어입니다. '와 동봉하십시오. http://stackoverflow.com/a/2879630/475882 – jaxxbo

6

위의 예는 나를 올바른 방향으로 안내합니다. 이것은 나를 위해 일했다. 내 수업 이름은 "Party"이고 테이블 이름은 "prty.Party"입니다.

public class PartyMap : ClassMap<Party> 
{ 
    public PartyMap() 
    { 
    Table("prty.Party"); 
    Id(x => x.PartyID); 
    Map(x => x.PartyTypeLID); 
    Map(x => x.OrganizationTypeLID); 
    Map(x => x.PreferredContactMethodLID); 
    Map(x => x.PrimaryLanguageLID); 
    Map(x => x.PartyVID); 
    Map(x => x.BeginDate); 
    Map(x => x.EndDate); 
    Map(x => x.RowDescriptor); 
    Map(x => x.RowModifiedDate); 
    Map(x => x.RowModifiedBy); 
    Map(x => x.RowCreatedDate); 
    Map(x => x.RowCreatedBy); 
    }   
} 
+0

지도 요청을 건너 뛰는 방법이 있습니까? –

관련 문제