NHibernate - QBE

时间:2011-01-25 14:19:46

标签: nhibernate

使用QBE和NHibernate时遇到问题。我在Person类和Employee之间有一对一的关系。

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 =“John”和Employee.Person.PayRollNo =“231A”。我想知道我是否可以使用Query By Example来执行此操作?

1 个答案:

答案 0 :(得分:2)

我无法找到明确的“否”,但我无法完成这项工作。我发现QBE很有前途,但遗憾的是由于以下限制而不是很有用:

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