2009-03-11 12 views
34

NHibernateの初心者で、マッピングにFluentを使用しようとしています。私のエンティティクラス名は、マッピングされなければならないデータベーステーブル名とは異なります。 ClassMap<>から派生したマッピングクラスを使用していますが、テーブル名を指定することはできません。TableNameからClassMapまでは読み取り専用です。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

この地図呼び出しをすべてスキップする方法がありますか? –

関連する問題