好的,我有两张桌子:
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映射如下:
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,它名为CompanyID
那么我做错了什么?我似乎无法设置Key Key为WithKeyColumn似乎不存在(这是我在人们已经做过的其他解决方案中找到的,但他们可能会使用不同版本的流利nhibernate给我)
提前致谢
答案 0 :(得分:4)
Fluent NHibernate - HasMany().WithKeyColumnName
解决了它:)
编辑:
显然,因为我今天在另一个问题上接受了我自己的答案,我还要等两天才能这样做。
那种糟糕但很糟糕。