запрос аудита nhibernate

Я использую NHibernate в своем проекте и реализовал функцию аудита с использованием прослушивателей событий.

Теперь мне нужно вернуть эти данные, я хочу вернуть их в точности так, как они есть в базе данных. Мне не нужна многофункциональная объектная модель с отношениями, все, что мне нужно, - это идентификаторы любых отношений.

Я в основном просто пытаюсь показать журнал аудита (который, по сути, является копией того, что вы бы увидели, если бы открыли таблицу в sql).

Мне нужно иметь возможность сделать это для многих таблиц, и все, что у меня есть, это имя таблицы аудита, есть ли общий способ заставить NHibernate запрашивать таблицу и просто возвращать результаты в виде таблицы данных или чего-то такого простого, что не нет ли определенной модели?

По сути, я хочу, чтобы NHibernate сделал это:

ВЫБРАТЬ * ИЗ "имя таблицы"

а затем вернуть его каким-то общим способом, чтобы я мог вставить сетку и автоматически сгенерировать столбцы из нее.


person Daniel Powell    schedule 13.05.2011    source источник


Ответы (2)


Вы можете использовать следующее для запроса несопоставленных объектов.

string tablename = "nonmapped";
IList<Unmapped> result = session
                                .CreateSqlQuery("select Id, Description from " + tablename)
                                .SetResultTransformer(Transformer.AliasToBean(typeof(Unmapped)))
                                .List<Unmapped>();

Подробнее: http://lostechies.com/jimmybogard/2010/06/30/ad-hoc-mapping-with-nhibernate/

person rebelliard    schedule 15.05.2011
comment
звучит интересно - person Daniel Powell; 16.05.2011

вы можете использовать метод select, чтобы получить только те поля, которые вам нужны:

session.CreateCriteria(typeof(Cat)).Select(c=> new {Id = c.Id, MateId = c.Mate.Id});
person J. Ed    schedule 13.05.2011