2009-08-16 17 views
2

Okay, so ich habe zwei Tabellen:Fluent NHibernate, stuggling mit einer Eins-zu-viele-Beziehungen

Companies 
    | id int 
    | name varchar(50) 

und

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

In meinem Code habe ich folgende Klassen

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

und

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

Und meine fließend nhibernate Mappings wie so:

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

und

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

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

Doch wenn ich versuche, die Company.Contacts Eigenschaft ich die folgende Fehlermeldung erhalten Zugriff auf

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

(ja zweimal in einer Nachricht)

offensichtlich die Schlüsselspalte auf der Kontakte-Tabelle wird nicht aufgerufen, company_id es heißt CompanyID

Also, was mache ich falsch? Ich kann nicht zu setzen scheinen, was die Schlüsselspalte als WithKeyColumn nicht zu existieren scheint (es ist, was ich in anderen Lösungen Menschen getan haben, gefunden haben, aber sie könnten eine andere Version von fließend nhibernate mir verwenden)

Vielen Dank im Voraus

Antwort