Nhibernate fluent hibernate映射中的引用似乎无法正常工作

Nhibernate fluent hibernate映射中的引用似乎无法正常工作,nhibernate,fluent-nhibernate,Nhibernate,Fluent Nhibernate,我在mvc项目中使用fluent hibernate 1.2.0.712和nhibernate 3.2.0.4000作为OR映射器,问题是: 这是我的oJob对象: public class Job{ virtual public Enquiry Enquiry { get; set; } virtual public long Id { get; set; } } 以下是查询: public class Enquiry { virtual public long Id {

我在mvc项目中使用fluent hibernate 1.2.0.712和nhibernate 3.2.0.4000作为OR映射器,问题是: 这是我的oJob对象:

public class Job{

    virtual public Enquiry Enquiry { get; set; }
    virtual public long Id { get; set; }
}
以下是查询:

public class Enquiry {

virtual public long Id { get; set; }
}
这是工作地图:

 public  class JobMap: ClassMap<Job>
{
   public JobMap()
   {
       Schema("dbo");

       Id(p => p.Id)
           .Column("Id");

       References(p => p.Enquiry);
    }
}
公共类JobMap:ClassMap
{
公共工作地图()
{
模式(“dbo”);
Id(p=>p.Id)
.列(“Id”);
参考文献(p=>p.inquiry);
}
}
我希望每个工作都有一个查询

但有时检查sql server时,我会看到作业表中有一些具有不同ID的记录,它们都具有相同的查询ID


我检查了很多次,不知道它到底是什么时候发生的,有什么问题吗?

您必须更改映射:更改

References(p => p.Enquiry);


它不会将任何东西保留到数据库中,我认为在关系的另一端需要引用是的,它是…你没有一对一的关系吗?不完全是,查询对象不知道job对象的任何内容好的…你的映射是正确的。我认为您只需要在Job表中添加一个惟一的约束:尝试用引用(p=>p.Enquiry).unique()替换引用(p=>p.Enquiry)。有了这个新的约束,您将无法拥有两个具有相同查询ID的作业行。即使通过添加引用(p=>p.inquiry)。Unique()也没有任何变化,直到现在我可以看到具有相同查询ID的记录
HasOne(p => p.Enquiry);