을 생산하지 건너 걸릴 :NHibernate에 다음 쿼리 Considoring 올바른 SQL
session.Query<Brand>()
.Where(x => x.Name == "Clause")
.Select(a => a.Name)
.Take(10)
.ToList();
NHibernate에 올바른 SQL 생성되지 않습니다 - 그것은 리미터를 추가 한 것으로 나타 코드에서 테이크를 생성하는 표시하지 않습니다 -하지 SQL에서.
어떤 아이디어?
생성 된 SQL :
select brand0_.br_name as col_0_0_ from Brands brand0_
where brand0_.br_name=?;p0 = 'Clause'
이러한 것들에 대해서는 잘 알고 있지 않습니다. 호출을 'Take'및 'Select'로 되돌릴 수 있습니까? –
@Damien_The_Unbeliever 나는 레코드의 전부를 가져올 것이고 이름뿐 아니라 차이점이없는 더 나쁜 성능을 가져올 것이라고 확신한다. 스튜어트 당신이 쿼리를 실행하는 데 사용하는 EXACT 코드는 무엇입니까? 그리고 어떤 버전의 NHibernate? 위의 코드는 실제로 해결되지 않습니다 (ToList 또는 대안이 없음). 나는 비슷한 결과를 보았고 다음과 같은 결과를 보았습니다 : select TOP (@ p0) fundingpac0_.FinalPackage에서 col_0_0_EffectiveDate로 fundingpac0_ fundingpac0_.DeletedDate가 null이고 @ p0 = 10 [Type : Int32 (0)] – mattytommo
세미 - SQL의 끝에있는 콜론 (끝 부분은 아님)은 문제가 있습니다. 유효하지 않은 Informix SQL로 세미 콜론 뒤에 머물러있게됩니다. 나는 'Take (10)'에 해당하는 것을 볼 수 없다. –