Mam proste podmiot o nazwie EmployeeEntity
o właściwościach ID
, Name
, Age
, Organisation
i Designation
. Ja po prostu przeglądając bazę danych przy użyciu kwerendybłąd podczas konwersja z NHibernate kwerendy do listy rodzajowe
IQuery query = session.CreateQuery(
"select Name, Designation, Age, Organisation FROM EmployeeEntity " +
"group by Name, Designation, Age, Organisation");
IList<EmployeeEntity> employee = query.List<EmployeeEntity>(); // Throws error
ale na konwersję do mojego typu, to rzuca wyjątek:
Nie można wykonać zapytania [SQL: SQL niedostępna]
z InnerException
:
wartość "System.Object []" nie jest typu „NHiberna teTest.EmployeeEntity "i nie mogą być używane w tej ogólnej kolekcji. Nazwa
Parametr: wartość
chociaż działa prawidłowo przy użyciu tej kwerendy:
IQuery query = session.CreateQuery("select e FROM EmployeeEntity e group by e");
IList<EmployeeEntity> employee = query.List<EmployeeEntity>();
ale nie chcę, aby zaznaczyć wszystkie kolumny, bo ich nie potrzebują.
Witam, dzięki za odpowiedź, ale po dodaniu konstruktora niż querying..it daje mi ten wyjątek „NHibernate .InvalidProxyTypeException: Następujące typy nie mogą być używane jako proxy: NHibernateTest.EmployeeEntity: type powinien mieć widoczny (publiczny lub chroniony) konstruktor bezargumentowy " co oznacza, że jednostka z konstruktorem nie jest obsługiwana przez nhibernate. –
@pijush, oznacza to tylko, że nie można mieć konstruktora bez parametrów. Po prostu dodaj konstruktor bez parametrów i możesz już iść. – Vadim