2009-03-11 9 views
34

Sono novizio di NHibernate e cerco di utilizzare Fluent per la mappatura. Il nome della mia classe di entità è diverso dal nome della tabella di database a cui deve essere associato. Sto usando la classe di mappatura derivata da ClassMap<>, ma non posso specificare il nome della tabella: la proprietà TableName da ClassMap è di sola lettura.Come specificare il nome della tabella nella classe ClassMap di Fluent NHibernate?

Grazie per il vostro aiuto.

risposta

43

Utilizzare invece .

+9

Questo è ora. A partire dal settembre 2009 Tabella ("nome_tabella"); – Chin

6

Funziona come?

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

L'utente è una parola chiave riservata. racchiudere con '. Vedi http://stackoverflow.com/a/2879630/475882 – jaxxbo

6

L'esempio sopra riportato mi guida nella giusta direzione. Questo ha funzionato per me. Il mio nome di classe è "Party" e il mio nome di tabella è "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

Forse esiste un modo per saltare tutte le chiamate su questa mappa? –

Problemi correlati