2011-08-01 9 views
1

私は以下のマッピングを持っている:NHibernateのはSchemaExportのを使用してテーブルを作成するとき流暢Nhibernateは2つのID列を追加していますか?

public AccountMap() 
    { 
     Id(x => x.AccountId, "AccountId").Column("AccountId"); 
     Map(x => x.UserId); 
     Map(x => x.HostName); 
     Map(x => x.CreatedOn); 
     Map(x => x.Deleted); 
     HasMany(x => x.People); 
     Table("crm_accounts"); 
    } 

    public PersonMap() 
    { 
     Id(x => x.PersonId).Column("PersonId"); 
     Map(x => x.PersonGuid); 
     Map(x => x.FirstName); 
     Map(x => x.Surname); 
     Map(x => x.Email); 
     Map(x => x.Password); 
     Map(x => x.SaltKey); 
     Map(x => x.PersonType); 
     Map(x => x.CreatedOn); 
     Map(x => x.Deleted); 
     Map(x => x.Active); 
     //Map(x => x.AccountId, "AccountId"); 

     HasManyToMany<PersonRole>(x => x.PersonRoles) 
      .ParentKeyColumn("RoleId") 
      .ChildKeyColumn("PersonId") 
      .Cascade.All() 
      .Table("crm_people_roles_mapping"); 
     References(x => x.Account, "AccountId").Column("AccountId").Cascade.All(); 
     Table("crm_people"); 
    } 

私はので、私のcrm_peopleテーブルに2つのたAccountId列を取得しています:

AccountId 
    Account_Id 

誰もが私は何に光を当てることができます間違っている?

+2

として、それは逆だと言いました。 – Phill

答えて

1

は彼のコメントで何フィルは、コード

アカウントマップhasManyの列に指定する必要が
public AccountMap() 
{ 
    ... 
    HasMany(x => x.People) 
     .KeyColumn("AccountId") 
     .Inverse(); 
} 
関連する問題