2009-08-16 43 views
2

好了,所以我有兩個表:功能NHibernate,有一個一對多的關係都有點吃力

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; } 
} 

and

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

我的功能NHibernate映射,像這樣:

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); 
    } 
} 

然而,當我嘗試訪問Company.Contacts財產我收到以下錯誤

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

(是一次消息中的兩次)

顯然聯繫人表格上的關鍵列不叫做Company_id,它叫做公司ID

那麼我在做什麼錯了?我似乎無法將Key Column設置爲WithKeyColumn似乎不存在(這是我在其他人所做的解決方案中發現的,但他們可能會使用不同版本的流暢的nhibernate給我)

在此先感謝

回答

相關問題