2011-05-13 5 views
0

내 프로젝트에 자 NHibernate를 사용하고 있는데 이벤트 리스너를 사용하여 감사 기능을 구현했습니다.NHibernate에 감사 질의

은 지금 나는 내가 원하는 모든이 모든 관계의 ID를 인 관계와 풍부한 개체 모델을 필요가없는 데이터베이스에서와 같이 정확히을 반환하려면, 다시이 데이터를 얻을 필요가있다.

나는 기본적으로 그냥 (당신은 SQL에서 테이블 위로 열 경우 당신이 볼 것입니다 무슨의 사본은 본질적입니다) 감사 로그를 보여주기 위해 노력하고 있어요.

많은 테이블에 대해이 작업을 수행 할 수 있어야하며 감사 테이블 이름 만 있으면 NHibernate에서 테이블을 쿼리하고 결과를 datatable 또는 간단한 것으로 반환하는 일반적인 방법이 있습니다. 그것은 정의 된 모델을 가지고 있지 않습니까? "TABLENAME"

하고 내가 그리드에 넣고 그것을 떨어져 열을 자동 생성 할 수 있습니다 몇 가지 일반적인 방법으로 그것을 돌려 FROM

SELECT * :

그래서 기본적으로 내가 NHibernate에이 작업을 수행 할 .

답변

0

당신은 매핑되지 않은 오브젝트를 조회하려면 다음을 사용할 수 있습니다.

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/

+0

소리 한번 풀어 줄 것이다 intersting –

0

당신이 원하는 필드 만 얻을 수있는 '선택'방법을 사용할 수 있습니다 :

session.CreateCriteria(typeof(Cat)).Select(c=> new {Id = c.Id, MateId = c.Mate.Id});