var locations = (from location in session.Query<Location>()
where
(location.MB_ID == 0 || location.MB_ID == null) &&
(location.hide != "Y" || location.hide == null) &&
(location.locationNameRaw != "" && location.locationNameRaw != null) &&
((location.isIPCapableText != "" && location.isIPCapableText != null) || (
(location.ISDNNumber1 != null && location.ISDNNumber1 != "") ||
(location.ISDNNumber2 != null && location.ISDNNumber2 != "") ||
(location.ISDNNumber3 != null && location.ISDNNumber3 != "") ||
(location.ISDNNumber4 != null && location.ISDNNumber4 != "") ||
(location.ISDNNumber5 != null && location.ISDNNumber5 != "") ||
(location.ISDNNumber6 != null && location.ISDNNumber6 != "")
))
&& (location.privateRoom == "N" || location.privateRoom == "" || location.privateRoom != null)
&& (
from lll in session.Query<LocationLonLat>()
where
location.locationID == lll.locationId
select lll.locationId
).Any()
&& (location.LastUpdatedTime > lastUpdateTime)
&& location.LocationTimes.Count() > 0
/*&& (
from lt in session.Query<LocationTimes>()
where
location.locationID == lt.LID
select lt.LID
).Any()*/
select location
)
.ToList();
Location (1)과 LocationTimes (many) 사이에는 관계가 있으며 하나 이상의 LocationTime 레코드가있는 위치의 데이터 집합 만 반환하려고합니다.Linq to nHibernate - 하위 요소가없는 요소 제외
&& location.LocationTimes.Count() > 0
내가 라인을 추가하는 경우 나 :
&& (
from lt in session.Query<LocationTimes>()
where
location.locationID == lt.LID
select lt.LID
).Any()
기본 연결이 닫혔습니다 내가 라인을 추가 할 때
나는 몇 가지를 시도
... : 연결 유지가 예상되는 연결은 서버에 의해 닫혔습니다.
나는이
가이 일을 더 나은 방법이 있나요 수 있기 때문에 ... 데이터 세트 또는 무언가의 크기 의심? '왼쪽 외부 조인'같은 거요?
왜 locationTime과 결합 위치를 사용하지 않습니까? 귀하가 로케이션 타임즈가있는 위치를 찾고 있기 때문에 – kalki