2009-08-16 8 views
2

Ok donc j'ai deux tables:Courant Nhibernate, stuggling avec un à-plusieurs

Companies 
    | id int 
    | name varchar(50) 

et

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

Dans mon code, j'ai les classes suivantes

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

et

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

Et mes applications de Fluent NHibernate comme si:

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

et

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

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

Pourtant, lorsque je tente d'accéder à la propriété Company.Contacts je reçois l'erreur suivante

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

(oui deux fois dans un message)

évidemment la colonne clé sur la table de contacts n'est pas appelée Company_id il s'appelle CompanyID

Alors qu'est-ce que je fais mal? Je ne peux pas sembler définir ce que la Colonne Clé comme WithKeyColumn ne semble pas exister (c'est ce que j'ai trouvé dans d'autres solutions que les gens ont fait, mais ils pourraient utiliser une version différente de nhibernate fluent)

Merci à l'avance

Répondre

Questions connexes