我有一个Employee类,我正在使用nhibernate重新获取员工数据。它给出了 完整列。(例如sql - 选择*)。但是,如果我想要选择列(仅限EmployeeName和EmployeeID),那么我需要创建一个具有这两个属性的类(例如,Empl类)。并使用AliasToBeanResultTransformer,即Projection我可以重试。我想知道在nhibernate中有没有任何方法(没有创建子类(Empl类),或者没有硬编码的hql查询)以便我可以检索特定的列值......
class Employee
{
public int EmployeeId { get; set; }
public string EmployeeName { get; set; }
public int ResidingInCountryId { get; set; }
public virtual Country ResidenceCountry { get; set; }
}
答案 0 :(得分:0)
如果您只想从查询中投射几列,则可以
a)使用DTO虽然你提到你出于某种原因不喜欢这个
b)如果你REALLY
想要一个匿名对象列表,那么只需省略结果转换器,这将导致一个具有预测值的匿名对象列表。这对于数据绑定就足够了。
此外,您不需要仅使用HQL作为项目,您可以使用Criteria,QueryOver或NH Linq。