2012-02-15 3 views
1

У меня есть класс Employee, я извлекаю данные о сотрудниках с помощью nhibernate.It дает полный столбец (экв. Sql - Select *). Но, если я хочу иметь выбранный столбец (например, EmployeeName и EmployeeID), тогда мне нужно создать класс с этими двумя свойствами (например, класс Empl). И с помощью AliasToBeanResultTransformer i.e. Projection i может извлечь. Я хочу знать, что есть ли способ в NHibernate (без создания вложенных классов (Empl класса), или без жесткого кодирования запроса HQL), так что я могу retrive конкретных значений столбцов ...поиск столбца данных в nhibernate

class Employee 
{  
    public int EmployeeId { get; set; } 
    public string EmployeeName { get; set; } 
    public int ResidingInCountryId { get; set; } 
    public virtual Country ResidenceCountry { get; set; } 
} 

ответ

0

Если вы хотите проецировать несколько столбцов из запроса, то вы можете либо

а) использовать DTO хотя вы упомянули вам не нравится это по какой-то причине

б) если вы хотите REALLY список анонимных объектов, то просто опустите трансформатор результатов, который приведет к списку анонимных объектов с проецируемыми значениями. Этого было бы достаточно для привязки данных.

Также вам не нужно использовать только HQL для проекторов, вы можете использовать критерии, QueryOver или NH Linq.

+0

@ Rippo Спасибо за ответ ur Я пытаюсь создать общий метод. Так что мне нужно передать только экземпляр основного класса и список имен столбцов. например 'public IList GetListByCriteriaQuery ()' T - основной класс, а S - это подкласс (любая комбинация столбцов класса T). Невозможно создать классы каждой комбинации столбцов, так как это не исправлено. Я посмотрел все три предложения, и я нахожу, что мне нужно жестко закодировать имя столбца, которое я не хочу делать. Из-за нехватки места, я не могу поставить свою полную логику. Можете понять меня или мне нужно обсудить больше , – user1000528

+0

Я выполнил критерии и смог вернуть список объектов Array. благодаря – user1000528

Смежные вопросы