2009-03-11 7 views
34

Jestem początkującym użytkownikiem NHibernate i próbuję użyć Fluent do mapowania. Moja nazwa klasy encji różni się od nazwy tabeli bazy danych, do której ma zostać zmapowany. Używam klasy mapowania pochodzącej z ClassMap<>, ale nie mogę określić nazwy tabeli: właściwość TableName z ClassMap jest tylko do odczytu.Jak określić nazwę tabeli w klasie Fluent NHibernate ClassMap?

Dzięki za pomoc.

Odpowiedz

43

Zamiast tego należy użyć .

+9

To jest teraz. Począwszy od września 2009 Tabela ("table_name"); – Chin

6

Czy to działa?

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

Użytkownik jest zastrzeżonym słowem kluczowym. dołącz do '. Zobacz http://stackoverflow.com/a/2879630/475882 – jaxxbo

6

Powyższy przykład prowadzi mnie we właściwym kierunku. To działało dla mnie. Moje nazwisko to "Party", a nazwa mojego stołu to "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

Może istnieje sposób, aby pominąć wszystkie wywołania map? –

Powiązane problemy