My problem with prefetch

Posts   
 
    
Fishy avatar
Fishy
User
Posts: 392
Joined: 15-Apr-2004
# Posted on: 31-May-2005 18:18:39   

I'm sure I'm doing something wrong. Here's the code to prefetch Group entities for filtered Assignment entities:

     Public Shared Function GetAssignmentByTeacherIdent(ByVal teacherIdent As Integer) As MedfordSchoolDistrict.Elementary.GradeBook.LLBL.HelperClasses.EntityCollection
        Dim Sorter As ISortExpression = New SortExpression
        Sorter.Add(SortClauseFactory.Create(Elementary.GradeBook.LLBL.AssignmentFieldIndex.DueDate, SortOperator.Ascending))
        Sorter.Add(SortClauseFactory.Create(Elementary.GradeBook.LLBL.AssignmentFieldIndex.Name, SortOperator.Ascending))

        Dim Filter As IRelationPredicateBucket = New RelationPredicateBucket

        Filter.PredicateExpression.Add(PredicateFactory.CompareValue(MedfordSchoolDistrict.Elementary.GradeBook.LLBL.AssignmentFieldIndex.TeacherIdent, ComparisonOperator.Equal, teacherIdent))

        Dim PrefetchPath As IPrefetchPath2 = New PrefetchPath2(CType(EntityType.AssignmentEntity, Integer))
        PrefetchPath.Add(AssignmentEntity.PrefetchPathGroup)

        GetAssignmentByTeacherIdent = New EntityCollection(New AssignmentEntityFactory)

        _Adapter.FetchEntityCollection(GetAssignmentByTeacherIdent, Filter, Nothing, Sorter, PrefetchPath)

        Return GetAssignmentByTeacherIdent
    End Function

Here is the SQL statement generated:

 SELECT [ElementaryGradeBook].[dbo].[Assignment].[AssignmentIdent] AS [AssignmentIdent],[ElementaryGradeBook].[dbo].[Assignment].[TeacherIdent] AS [TeacherIdent],[ElementaryGradeBook].[dbo].[Assignment].[Name] AS [Name],[ElementaryGradeBook].[dbo].[Assignment].[Description] AS [Description],[ElementaryGradeBook].[dbo].[Assignment].[Note] AS [Note],[ElementaryGradeBook].[dbo].[Assignment].[Weight] AS [Weight],[ElementaryGradeBook].[dbo].[Assignment].[DueDate] AS [DueDate],[ElementaryGradeBook].[dbo].[Assignment].[RequiredFlag] AS [RequiredFlag],[ElementaryGradeBook].[dbo].[Assignment].[SummarizeFlag] AS [SummarizeFlag],[ElementaryGradeBook].[dbo].[Assignment].[CimWorkSampleFlag] AS [CimWorkSampleFlag],[ElementaryGradeBook].[dbo].[Assignment].[CheckOffFlag] AS [CheckOffFlag],[ElementaryGradeBook].[dbo].[Assignment].[PublishPALAssignment] AS [PublishPALAssignment],[ElementaryGradeBook].[dbo].[Assignment].[PalNote] AS [PalNote],[ElementaryGradeBook].[dbo].[Assignment].[PublishPalNote] AS [PublishPalNote],[ElementaryGradeBook].[dbo].[Assignment].[CreatedUsername] AS [CreatedUsername],[ElementaryGradeBook].[dbo].[Assignment].[CreatedIdent] AS [CreatedIdent],[ElementaryGradeBook].[dbo].[Assignment].[CreatedDate] AS [CreatedDate],[ElementaryGradeBook].[dbo].[Assignment].[UpdatedUsername] AS [UpdatedUsername],[ElementaryGradeBook].[dbo].[Assignment].[UpdatedIdent] AS [UpdatedIdent],[ElementaryGradeBook].[dbo].[Assignment].[UpdatedDate] AS [UpdatedDate] FROM [ElementaryGradeBook].[dbo].[Assignment] WHERE ( [ElementaryGradeBook].[dbo].[Assignment].[TeacherIdent] = @TeacherIdent1) ORDER BY [ElementaryGradeBook].[dbo].[Assignment].[DueDate] ASC,[ElementaryGradeBook].[dbo].[Assignment].[Name] ASC', N'@TeacherIdent1 int', @TeacherIdent1 = 2766

Nothing for the Group table.

Any ideas what I'm doing wrong?

Thanks,

Fishy

Marcus avatar
Marcus
User
Posts: 747
Joined: 23-Apr-2004
# Posted on: 31-May-2005 19:09:14   

Fishy wrote:

Any ideas what I'm doing wrong?

Not sure if there is anything wrong with your code... BUT you won't see anything for Group table in that query. The prefetch logic causes a second query to execute to fetch the data from the Group table.

If you don't see this second query in the profiler, it's more than likely because the Assignment collection returned empty.

Cut and paste the above query into QueryAnalyser and see if any rows are returned.

Fishy avatar
Fishy
User
Posts: 392
Joined: 15-Apr-2004
# Posted on: 31-May-2005 20:04:31   

Marcus wrote:

If you don't see this second query in the profiler, it's more than likely because the Assignment collection returned empty.

I think that's the problem - Thanks,

Fishy