2011-01-25 36 views
0

我有一个问题与NHibernate使用QBE。我在Person类和Employee之间有一对一的关系。NHibernate - QBE

public class Person 
{ 
    public virtual Employee Employee { get; set; } 
    public virtual int Age { get; set; } 
    public virtual string Forename { get; set; } 
    public virtual string Surname { get; set; } 
    public virtual int PersonID { get; set; } 
} 

public class Employee 
{ 
    public virtual int PersonID { get; set; } 
    public virtual string PayRollNo { get; set; } 
    public virtual int Holidays { get; set; } 
    public virtual Person Person { get; set; } 
} 

举个例子,我想所有的员工,其中Employee.Forename = “约翰” 和Employee.Person.PayRollNo = “231A”。我想知道是否可以使用按示例查询来做到这一点?

回答

2

我还没有找到一个明确的“否”,但我一直无法得到这项工作。我发现QBE是有希望的,但不幸的是由于以下限制不太有用:

  • 无法查询相关对象。
  • 需要公共无参数构造函数。
  • 已初始化的属性包含在查询中,除非使用ExcludeProeprty特别排除。例如,bool属性在where子句中被限制为false,DateTime为DateTime.MinValue。这使得查询非常脆弱,因为类修改可能有不良副作用。