저는 많은 하위 레코드가있는 상위 레코드가있는 레코드 구조를 가지고 있습니다. 같은 페이지에서 나는 모든 아이들을 얻기 위해 몇 가지 질문을 할 것입니다.레코드 ID가 손실 됨
나중에 쿼리를 확장하면 레코드 집합이 생성되어 "프록시"가 표시됩니다. 모든 것이 일반적으로 존재하기 때문에 레코드에서 데이터를 가져 오는 것이 좋습니다. 내가 가진 유일한 문제는 내가 기록 "ID"를 붙잡기 위해 갈 때 그것이 항상 "0"이기 때문에 그것이 프록시이기 때문이다. 이렇게하면 레코드 ID를 "선택한 값"으로 사용하는 드롭 다운 목록을 작성할 때 상당히 힘들어집니다. 이 점을 악화시키는 것은 무작위입니다. 따라서 5 개 항목 중 2 개는 프록시이므로 ID가 "0"입니다.
evict를 사용하여 강제로로드 할 수 있습니다. 그러나 게으른로드 (Grid의 경우)가 필요할 때 게으른로드를 중지하고 그리드 컨텐츠를 즉석에서 표시 할 수 없기 때문에 제거가 좋지 않습니다.
이ISession session = FluentSessionManager.SessionFactory.OpenSession();
session.BeginTransaction();
CurrentSessionContext.Bind(session);
나는 심지어 내 쿼리 내에서 "("열망을 MyTable) ".SetFetchMode"를 사용하고 그것은 여전히 "프록시"보여줍니다
나는 내 세션을 시작하려면 다음을 사용하고 있습니다.
프록시는 정상이지만 기록 ID가 필요합니다. 다른 누구든지이 문제를 해결하고 간단한 수정을합니까?
나는 이것에 대한 도움을 크게 주시면 감사하겠습니다.
감사합니다. 나는 실버를 발견
public IList<Patients> GetAllPatients()
{
return FluentSessionManager.GetSession()
.CreateCriteria<Patients>()
.Add(Expression.Eq("IsDeleted", false))
.SetFetchMode("Children", Eager)
.List<Patients>();
}
첫 번째 단락에서 언급 한 코드를 여기에 모두 붙여 넣을 수 있습니까? –
레코드가 "Proxy"이므로 ID가 0 인 하위 항목을 제공하는 쿼리를 사용했습니다. 모든 기록이 "프록시"는 아니므로주의하십시오. 그것들은 다소 간헐적입니다. –