2009-08-16 14 views
2

オーケー1対多の関係でstuggling:私のコードでは流暢NHibernateは、私は2つのテーブル持っているので、

Companies 
    | id int 
    | name varchar(50) 

Contacts 
    | id int 
    | name varchar(50) 
    | companyID int 

を私は以下のクラスを持っている

public class Company 
{ 
    public int Identity { get; set; } 
    public string Name { get; set; } 
    public IList<Contact> Contacts { get; set; } 
} 

および

public class Contact 
{ 
    public int Identity { get; set; } 
    public string Name { get; set; } 
    public Company Company { get; set; } 
} 

それでとしての私の流暢NHibernateのマッピング:私はCompany.Contactsプロパティにアクセスしようとすると、

public class CompanyMapping : ClassMap<Company> 
{ 
    public CompanyMapping() 
    { 
     WithTable("Companies"); 

     Id(x => x.Identity, "Id"); 
     Map(x => x.Name);    
     HasMany<Contact>(x => x.Contacts)             
      .Inverse()     
      .LazyLoad()     
      .Cascade.All() 
      .AsList();     
    } 
} 

public class ContactMapping : ClassMap<Contact> 
{ 
    public ContactMapping() 
    { 
     WithTable("Contacts"); 

     Id(x => x.Identity, "Id"); 
     References<Company>(x => x.Company, "CompanyID"); 
     Map(x => x.Name); 
    } 
} 

は、しかし、私は(

Invalid column name 'Company_id'. 
Invalid column name 'Company_id'. 

次のエラーを取得します1つのメッセージで2回はい)

明らかに連絡先テーブルのキー列はCompany_idと呼ばれていませんCompanyID

どうしたのですか?私はWithKeyColumnというキー列が存在しないように設定するようには思えません。(これは他の人が行った解決策で見つかったものですが、流暢なnhibernateを使っています)

事前に

おかげ

答えて

4

Fluent NHibernate - HasMany().WithKeyColumnName

はそれを解決:)

編集:どうやら

、今日は別の質問に私自身の答えを受け入れてきたので、私はに別の2日間待たなければなりません行う そう。

そのようなものは私を吸う。

関連する問題