NHibernate를 사용하여 프로 시저를 호출하고 매핑되지 않은 엔티티를 채운 다음 하위 엔티티 목록을 가져 오는 코드에 대한 질문이 있습니다.NHibernate - 매핑되지 않은 클래스에서 자식 엔티티 채우기
예를 보여 드리겠습니다. 세 기관 : 집,이자, 사용자 I 순위와 같은 몇 가지 추가 속성을했습니다 때문에 나는 집과 사용자 사이의 관계에 대한 클래스와 관심를 사용
class house
string name; string title; string description;
list<interest> users;
은 내가 저장할 필요가 있음을 언급 .
class interest
house houseinterested;
user userinterested;
int ranking; string descriptions;
그리고 난이 지역 범위 withing에 모든 주택을 쿼리해야하기 때문에
class user
string name
는, 내가 저장 프로 시저에 대한 계산 (긴 위도 /를 전송) 것을하고있어 사용자 클래스, 및 그럼 난 여분의 속성 거리 내가보기에 표시해야합니다 반환합니다. 나는 (내가 그냥 검색하기 때문에, 내가 그 값을 저장하지 않습니다) 테이블에 거리를 매핑 할 해달라고
, 그래서 난 집에 유사한 다른 기업을 만들었지 만 한 거리 속성 (houseview) 그리고 난 CreateSQLQuery과 절차를 질의하고 있습니다 :
const string sql = "call imovel_within_area (:@orig_lat, :@orig_long, :@dist, :@take, :@skip, :@quartos, :@precomin, :@precomax)";
var query = MvcApplication.Session.CreateSQLQuery(sql)
.SetParameter("@dist", distancia)
.SetParameter("@orig_lat", latitude) //-25.363882m
.SetParameter("@orig_long", longitude) // 131.044922m
.SetParameter("@take", resultados)
.SetParameter("@skip", ((pagina-1 * resultados)))
.SetParameter("@quartos", quartos.Value)
.SetParameter("@precomin", precomin.Value)
.SetParameter("@precomax", precomax.Value);
query.SetResultTransformer(NHibernate.Transform.Transformers.AliasToBean(typeof(Core.Domain.houseview)));
지금 내가 관심있는 사용자의 목록을 채우려.
foreach (var housein houses.List<Core.Domain.houseview>())
{
house.Where(x => x.Id == house.Id).ToList().First().Interest =
MvcApplication.Session.QueryOver<Core.Domain.House>()
.Where(x => x.Id == imovel.Id).List().First().Interessados;
}
나는 쿼리에서 unmaped 열을 반환 없었 때문에,이 성능 문제에 허용되는 경우 내가이 작업을 수행하는 방법을 아주 확실하지 않다 나.
몇 가지 조언을 부탁드립니다.
감사