我正在尝试使用 Fluent NHibernate 建模一个简单的 1:n 关系:
有人和项目。一个人拥有零到无限的物品,而一件物品属于一个人。
我的数据类:
public class Person
{
    public virtual int Id { get; set; }
    public virtual string Name { get; set; }
    public virtual IList<Item> Items { get; set; }
}
public class Item
{
    public virtual int Id { get; set; }
    public virtual Person Owner { get; set; }
}
和映射:
public sealed class ItemMap : ClassMap<Item>
{
    public ItemMap()
    {
        Id(x => x.Id);
        References(x => x.Owner);
    }
}
public sealed class PersonMap : ClassMap<Person>
{
    public PersonMap()
    {
        Id(x => x.Id);
        Map(x => x.Name);
        HasMany(x => x.Items).Inverse();
    }
}
当我尝试使用 NHibernate 的SchemaExport类创建数据库模式时,出现了我的问题。
Item 表实际上有两列引用 Person 表:
create table [Item] (
    Id INT IDENTITY NOT NULL,
   Owner_id INT null,
   Person_id INT null,
   primary key (Id)
)
这是为什么?
一列应该就足够了——据我所知,调用Inverse应该抑制第二列——但是,事实并非如此。
我究竟做错了什么?